javascript - 将 pdf.js 示例移植到 Electron

标签 javascript node.js electron

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

作为一个 Electron 应用程序。我已将 html 的主要部分复制到我的 Electron 索引文件中。 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';

不幸的是,现在我收到了有关 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);
});

所以问题是:

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

最佳答案

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

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/

相关文章:

electron - 如何理解 atom-shell 的浏览器端与客户端

angular - 在用 Electron 打包的 Angular 应用程序中运行 shell 脚本

javascript - 如何在 ajax url 中传递 JavaScript 变量?

javascript - 为函数添加条件,使其仅在特定情况下运行

javascript - 'next' 中的 'middleware function' 参数在 Node.js 的 Express 中如何工作?

javascript - 使用 Pug (Jade) 和 JavaScript 的动态表单

javascript - 在 <a> 之前的多个元素之前搜索 <select>

javascript - 使用 Express/Sendgrid 将电子邮件模板用于联系表单

node.js - 可以使用 Sequelize 连接到新数据库吗?

client-server - 在服务器-客户端应用程序中使用通量架构模式