如何设置 PDF 工作者的自定义路径

How to set custom path to a PDF worker

我在 Angular 7 的项目中使用 this PDF 查看器组件,但正如文档中详尽解释的那样:

By default the worker is loaded from cdnjs.cloudflare.com.

所以,我想做的是从我的项目中的本地路径加载工作程序。但是在文档的 this 部分,并没有解释具体如何做到这一点。

我试过的 我用 npm install 下载了 pdfjs-dist 并且还找到了一个 pdf.worker.min.js 文件,它在我项目的 shared 文件夹中。

所以,在我的 main-area.component.ts:

...
import * as pdfjsLib from 'pdfjs-dist/build/pdf';

...

ngOnInit() {
    pdfjsLib.GlobalWorkerOptions.workerSrc = '../assets/pdf.worker.min.js';
    ....
}

当页面打开时,我可以在浏览器的 网络 选项卡中看到找到了本地文件。但在 Console 选项卡中显示:Warning: Setting up fake worker.
有人可以指导我如何成功设置工人吗?提前致谢!

关于如何为 PDF 工作人员设置自定义路径的主题也在 Github 项目页面的以下主题中进行了讨论:

https://github.com/VadimDez/ng2-pdf-viewer/issues/504

工作文件 pdf.worker.js(或缩小版本 pdf.worker.min.js)可以在 node_modules 项目的文件夹中找到:node_modules/pdfjs-dist/build/pdfjs-distng2-pdf-viewer 的依赖项,它将与该库一起安装。

推荐的解决方案是:

  1. angular.json 文件的 assets 部分中将 pdf.worker.min.js 作为 angular 资产提供:

    "architect": {
       "build": {
         "options": {
           "assets": [
             "src/assets",
             {
                 "glob": "pdf.worker.min.js",
                 "input": "node_modules/pdfjs-dist/build/",
                 "output": "/assets/pdfjs/"
             }
         ],
         ...
    
  2. 如自述文件 (https://github.com/VadimDez/ng2-pdf-viewer#set-custom-path-to-the-worker) 中所述,在您的 pdf-components 构造函数中使用以下内容:

    public constructor() {
      (window as any).pdfWorkerSrc = '/assets/pdfjs/pdf.worker.min.js';
    }