【问题标题】:Unable to specify custom path for pdf.worker.js in PDFjs无法在 PDFjs 中为 pdf.worker.js 指定自定义路径
【发布时间】:2019-05-12 09:05:07
【问题描述】:

我已经在我的 ASP.NET MVC 应用程序中实现了 PDFjs。我遵循的步骤。

  • 通过将 PDFjs 提供的代码复制为 WebViewer.html,创建了一个可用作 Pdf 查看器的操作。
  • 在此页面上,我正确地提供了此 HTML 页面所需的所有静态资源的路径。

现在唯一的问题是pdf.worker.js 的路径。当我运行该应用程序时,我收到一个错误,即找不到此文件。即使经过很多努力,我也无法解决这个问题。谁能告诉我我需要在哪里更改代码以便我可以指定此文件的自定义路径?

根据代码,我可以说这个 js 文件在内部被 pdf.js 引用。但是pdf.js 文件似乎是由 WebPack 生成的,并且更新此文件中的pdf.worker.js 路径不会影响任何内容。

这是 pdf.js 代码的样子:

【问题讨论】:

    标签: javascript asp.net-mvc pdf pdfjs


    【解决方案1】:

    使用 PDF.js 默认查看器,应用程序选项位于 viewer.js 文件中。虽然我不完全了解它的工作原理,但查看器层似乎根据需要将配置值传递给 pdf.js 显示层。

    在 2.0+ 版本中,您可以更改 workerSrc 的硬编码值,默认如下所示:

    workerSrc: {
      value: '../build/pdf.worker.js',
      kind: OptionKind.WORKER
    }
    

    我想不出在 2.0 中动态设置它的方法。

    在新发布的 2.1 中,感谢this pull request,您可以使用自定义webviewerloaded 事件更轻松地设置查看器选项。例如,

    document.addEventListener('webviewerloaded', function () {
        document.PDFViewerApplicationOptions.set('workerSrc', '/your/path/here/pdf.worker.js');
    });
    

    【讨论】:

    • 巧合的是,大约一个月前,我也开始在 ASP.NET MVC 中实现 PDF.js。
    • 谢谢@DPenner1。几个月前我也做了同样的事情(第一个解决方案)来解决这个问题。但是,我没有在这里发布答案。顺便说一句非常感谢..:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 2017-01-10
    相关资源
    最近更新 更多