问题描述
我正在使用 react pdf viewer 并且我想在本地设置工作器。我试过这样做:
import pdfjsWorker from "pdfjs-dist/build/pdf.worker.entry";
<Worker workerUrl={pdfjsWorker}>
<Viewer
fileUrl={url}
defaultScale={SpecialZoomLevel.PageFit}
plugins={[
defaultLayoutPluginInstance
]}
/>
</Worker>
但是,这会引发警告:
警告:设置假工人
那么导入 worker 的正确方法是什么,为什么我会收到此警告?
解决方法
Worker 组件需要一个类型为 workerUrl
的 string
。您可能需要将代码中的 pdfjsWorker
替换为实际的 pdf-worker 网址。
const pdfVersion = "2.6.347"
const pdfWorkerUrl = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfVersion}/pdf.worker.js`
<Worker workerUrl={pdfWorkerUrl}>
<Viewer
fileUrl={url}
defaultScale={SpecialZoomLevel.PageFit}
plugins={[
defaultLayoutPluginInstance
]}
/>
</Worker>
注意:请确保为 pdfjs-dist 和 worker 设置相同的版本。
官方文档在这里提到了同样的事情:https://react-pdf-viewer.dev/docs/basic-usage/
,我遇到了类似的问题,通过添加 pdf.worker.js 解决了这些问题
我在 worker.js 的头部添加了 js 文件,即 https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.worker.js