将pdf.js示例移植到电子

时间:2019-02-23 05:46:38

标签: javascript node.js electron

我试图从以下位置重新创建上一个/下一个示例: https://mozilla.github.io/pdf.js/examples/

作为电子应用程序。我已经将html的主要部分复制到了我的电子索引文件中。 renderer.js本质上是示例页面上的javascript文件。

现在我尝试进行以下更改:

  1. 我运行了npm install webpack,因为它是pdfjs的同级依赖项
  2. 运行了npm install pdfjs-dist

请注意,我不确定是否应该完成pdfjs-distpdfjs

然后在我替换的脚本中:

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';

不幸的是,现在我收到关于诺言并试图在空对象上获取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);
});

所以问题是:

  1. 我在做什么错了?
  2. 奖金:pdfjs-dist是最好的选择吗?我一般如何将.js之类的内容链接到npm安装?
  3. 奖金:我如何让员工不依赖该网站?

1 个答案:

答案 0 :(得分:0)

如果您仍在寻找解决方案,我可以使用它

pdfjsLib.GlobalWorkerOptions.workerSrc = './node_modules/pdfjs-dist/build/pdf.worker.js'
节点模块内的

pdfjs-dist文件夹具有构建文件