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

标签 javascript reactjs typescript pdf.js pdfjs-dist

我尝试查找一些有关如何将 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;
我不确定 typescript ,但应该可以工作。
版本:
"pdfjs-dist": "^2.7.570",
"react": "^17.0.1",

关于javascript - 在带有 typescript 的 create-react-app 中使用 mozilla pdf.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64269821/

相关文章:

javascript - 您是否重复使用选择框中的值?

javascript - react-google-maps fitBounds 和 panToBounds 不会缩放 map

javascript - Nest JS Guards - 使用两种策略之一

node.js - 由于以下错误,无法安装 tsd 软件包

javascript - 用于超时用户和显示灯箱警报警告的 jQuery 插件

javascript - 添加表单值而不超过javascript中的总值

javascript - 如何使用 polymer 元件

javascript - 使用 props 将 Redux Action 传递给子组件

javascript - 如何在 React 中访问文件

javascript - 在哪里可以找到 beta Office.js 的 typescript 引用?