Pat*_*ick 6 javascript pdf.js typescript reactjs pdfjs-dist
我试图找到一些关于如何将 mozilla pdf.js 包含到配置了打字稿的 create-react-app 中的文档。不幸的是,我只发现很多人都在问同样的问题,但没有可行的解决方案。
目前我使用以下方法,它似乎有效。但我不确定这是否是一个好方法。
我使用 npm 安装了依赖项,如下所示。
npm install --save @types/pdfjs-dist
npm install --save pdfjs-dist
Run Code Online (Sandbox Code Playgroud)
并以这种方式导入/配置它。
// 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);
});
Run Code Online (Sandbox Code Playgroud)
因此,我必须确保文件pdf.worker.js.map和pdf.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"
Run Code Online (Sandbox Code Playgroud)
小智 4
我遇到了类似的问题。github问题中提供了一些解决方案,例如Here和Here,但对我来说没有任何作用。在使用 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;
Run Code Online (Sandbox Code Playgroud)
我不确定打字稿,但应该工作相同。
版本:
"pdfjs-dist": "^2.7.570",
"react": "^17.0.1",
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |