我正在尝试从以下位置重新创建上一个/下一个示例: https://mozilla.github.io/pdf.js/examples/
作为一个 Electron 应用程序。我已将 html 的主要部分复制到我的 Electron 索引文件中。 renderer.js
本质上是示例页面上的 JavaScript 文件。
现在我尝试进行以下更改:
- 我运行了
npm install webpack
,因为它是 pdfjs 的对等依赖项 - 运行
npm install pdfjs-dist
请注意,我不确定是否应该执行 pdfjs-dist
或 pdfjs
然后在我替换的脚本中:
var pdfjsLib = window['pdfjs-dist/build/pdf'];`
与
var pdfjsLib = require('pdfjs');
但重要的是,我不确定如何处理工作线程:
pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';
由于我不清楚的原因,这一行被解析为 file://mozilla ...
所以我手动将其更改为 https://
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://mozilla.github.io/pdf.js/build/pdf.worker.js';
不幸的是,现在我收到了有关 promise 并尝试在空对象上获取 numPages 的错误。这是有问题的代码:
/**
* Asynchronously downloads PDF.
*/
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
pdfDoc = pdfDoc_;
document.getElementById('page_count').textContent = pdfDoc.numPages;
// Initial/first page rendering
renderPage(pageNum);
});
所以问题是:
- 我做错了什么?
- 奖励:pdfjs-dist 是最好的选择吗?一般来说,我如何将 .js 等内容链接到 npm 安装?
- 奖励:如何让工作人员不依赖该网站?
最佳答案
如果您仍在寻找解决方案,我可以使用它来工作
pdfjsLib.GlobalWorkerOptions.workerSrc = './node_modules/pdfjs-dist/build/pdf.worker.js'
Node 模块内的 pdfjs-dist 文件夹包含构建文件
关于javascript - 将 pdf.js 示例移植到 Electron,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54838625/