reactjs 有没有办法在同一个react-project中使用react-pdf和pdf.js?

yc0p9oo0  于 2023-05-28  发布在  React
关注(0)|答案(1)|浏览(288)

我在一个项目中使用pdf.js(版本3.6.172),并试图使用react-pdf(版本6.2.2)。问题是设置workerSrc,因为每个软件包都试图使用自己的版本,并拒绝使用错误的版本。
要加载pdf.js,我用途:

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

然后设置workerSrc:

pdfjsLib.GlobalWorkerOptions.workerSrc = pdfjsWorker;

在使用react-pdf的组件中,我用途:

import { Document, Page, pdfjs } from 'react-pdf';
import pdfjsWorker from "react-pdf/node_modules/pdfjs-dist/build/pdf.worker.entry";
pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;

如果我注解react-pdf代码,pdf.js代码可以完美地工作。否则也会发生同样的情况(当我注解pdf.js代码时,react-pdf代码工作正常)。
有没有办法在同一个项目中加载这两个库?

v8wbuo2f

v8wbuo2f1#

你可以尝试直接从pdfjs-dist依赖项中使用pdfjs,而不是在使用react-pdf的组件中使用react-pdf,如果运气够好的话,它可能会工作。在失败的情况下,没有明显的解决方案,因为两者都依赖于相同的全局变量,导致彼此覆盖。这就是为什么你评论一个,另一个会起作用。

import { Document, Page } from 'react-pdf';
import * as pdfjs from 'pdfjs-dist';
import pdfjsWorker from 'pdfjs-dist/build/pdf.worker.entry';

pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;

相关问题