我在带有 Angular 7 的项目中使用此PDF 查看器组件,但正如文档中详细解释的那样:
默认情况下,从 cdnjs.cloudflare.com 加载工作线程。
因此,我要做的是从项目中的本地路径加载工作线程。但是在文档的这一部分中,没有解释如何执行此操作。
我尝试了什么,我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';
....
}
当页面打开时,我可以在浏览器的"网络"选项卡中看到找到了本地文件。但在控制台选项卡中,它说:警告:设置假工人。
有人可以指导我如何成功设置工作人员吗?提前感谢!
如何在 Github 上的项目页面上的以下主题中讨论了如何为 PDF 工作线程设置自定义路径的主题:
https://github.com/VadimDez/ng2-pdf-viewer/issues/504
工作器文件pdf.worker.js
(或缩小版本,pdf.worker.min.js
(,可以在node_modules
项目的文件夹中找到:node_modules/pdfjs-dist/build/
。pdfjs-dist
是ng2-pdf-viewer
的依赖项,它将与此库一起安装。
建议的解决方案是:
-
在文件中的"
assets
"部分中提供pdf.worker.min.js
作为角度资源angular.json
:"architect": { "build": { "options": { "assets": [ "src/assets", { "glob": "pdf.worker.min.js", "input": "node_modules/pdfjs-dist/build/", "output": "/assets/pdfjs/" } ], ...
-
如自述文件 (https://github.com/VadimDez/ng2-pdf-viewer#set-custom-path-to-the-worker( 中所述,在 pdf 组件构造函数中使用以下方法:
public constructor() { (window as any).pdfWorkerSrc = '/assets/pdfjs/pdf.worker.min.js'; }