Nee*_*rni 9 javascript node.js pdf.js
我正在尝试从 pdf 的 url 中提取 pdf 的文本。按照 pdf.js 网站上的示例,我了解如何在客户端呈现 pdf,但是当我在服务器端执行此操作时遇到了问题。
我使用 npm i pdfjs-dist
我尝试使用下面的代码作为加载 pdf 的简单示例:
var url = 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf';
var pdfjsLib = require("pdfjs-dist")
var loadingTask = pdfjsLib.getDocument(url);
loadingTask.promise.then(function (pdf) {
console.log(pdf);
}).catch(function (error){
console.log(error)
})
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我收到以下错误:
message: 'The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream` and/or `Promise.allSettled`); please use an ES5-compatible build instead.',
name: 'UnknownErrorException',
details: 'Error: The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream` and/or `Promise.allSettled`); please use an ES5-compatible build instead.'
Run Code Online (Sandbox Code Playgroud)
关于如何去做这件事的任何想法?我要做的就是从它的 URL 中提取 pdf 的文本。我正在尝试使用 nodejs 来做这个服务器端。感谢任何输入!
Nee*_*rni 11
您需要导入 pdf.js 的 es5 版本。下面的代码应该工作:
var pdfjsLib = require("pdfjs-dist/es5/build/pdf.js");
var url = 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf';
var loadingTask = pdfjsLib.getDocument(url);
loadingTask.promise.then(function (pdf) {
console.log(pdf);
}).catch(function (error){
console.log(error)
})
Run Code Online (Sandbox Code Playgroud)
另请查看https://github.com/mozilla/pdf.js/blob/master/examples/node/getinfo.js以获取 node.js 的工作示例
小智 11
我遇到了同样的问题(浏览器/环境缺乏对PDF.js库(例如ReadableStream和/或Promise.allSettled)使用的关键功能的本机支持;请改用ES5 兼容的构建。)但是使用Angular 8所以在这里我留下解决方案如果有人需要它:
packaje.json 配置:
8.2.142.4.456成分:
import * as pdfjs from 'pdfjs-dist/es5/build/pdf';
import { pdfjsworker } from 'pdfjs-dist/es5/build/pdf.worker.entry';
pdfjs.GlobalWorkerOptions.workerSrc = pdfjsworker;
Run Code Online (Sandbox Code Playgroud)
我在最新版本的 pdfjs-dist (2.8.335) 中也遇到了同样的问题,同时在 node js 项目中使用它,正如其他答案中提到的,我们需要更改路径来解决这个问题。
但就我而言,路径 -pdfjs-dist/es5/build/pdf没有用。
在最新版本中它已更改为 pdfjs-dist/legacy/build/pdf.js
| 归档时间: |
|
| 查看次数: |
4793 次 |
| 最近记录: |