在带有typescript的create-react-app中使用mozilla pdf.js

问题描述

我尝试找到一些文档,说明如何将mozilla pdf.js包含在配置了typescript的create-react-app中。不幸的是,我只发现很多人在问同样的问题,却没有可行的解决方案。
目前,我使用以下方法,它似乎有效。但是我不确定这是否是一个方法

我使用npm安装了依赖项,如下所示。

npm install --save @types/pdfjs-dist
npm install --save pdfjs-dist

然后以这种方式导入/配置它。

// Import pdf.js    
import * as pdfjsLib from 'pdfjs-dist';
pdfjsLib.GlobalWorkerOptions.workerSrc = process.env.PUBLIC_URL + '/assets/js/pdfjs/pdf.worker.min.js';

// Load pdf
pdfjsLib.getDocument('pdf_url').promise.then((promise: pdfjsLib.PDFDocumentProxy) => {
    console.log(promise.fingerprint);
});

因此,我必须确保文件pdf.worker.js.mappdf.worker.min.js位于文件public/assets/js/pdfjs中。有没有更优雅的方法解决pdf.js的导入?

附加了react和pdfjs-dist版本:

"pdfjs-dist": "^2.5.207","react": "^16.13.1","react-scripts": "3.4.3","typescript": "^3.7.5"

解决方法

我遇到了类似的问题。 github问题中提供了一些解决方案,例如HereHere 但对我没有任何作用。在使用 javascript 的 create-react-app 中对我有用的是使用来自 pdfjs-dist 的 es5 版本的构建文件,这些文件可在 pdfjs-dist/es5/build/

import * as pdfjs from 'pdfjs-dist/es5/build/pdf';
import pdfjsWorker from 'pdfjs-dist/es5/build/pdf.worker.entry';

pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;

我不确定打字稿,但应该一样。

版本:

"pdfjs-dist": "^2.7.570","react": "^17.0.1",