无法在PDFjs中为pdf.worker.js指定自定义路径

时间:2018-12-11 11:19:22

标签: javascript asp.net-mvc pdf pdfjs

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

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

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

enter image description here

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

这是pdf.js代码的样子:

enter image description here

1 个答案:

答案 0 :(得分:2)

使用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');
});