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

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

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

  • 我运行了npm install webpack,因为它是pdfjs的对等依赖项
  • npm install pdfjs-dist

  • 注意我不确定是否应该完成pdfjs-distpdfjs
    然后在脚本中我替换了:
    var pdfjsLib = window['pdfjs-dist/build/pdf'];`
    


    var pdfjsLib = require('pdfjs');
    

    但重要的是,我不确定如何处理 worker 线:
    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/

    10-09 20:52