我想在我的一个项目中使用 pdf.js,但我遇到了导入它的问题,基本上,CDN 不起作用
这是我的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/pdf.min.js"></script>
</head>
<body>
<canvas id="my-canvas"></canvas>
<script>
pdfjsLib.getDocument('./ahmed.pdf').then(doc => {
console.log("this file has" + doc._pdfInfo.numPages);
});
</script>
</body>
</html>
这就是我的控制台显示的错误
已弃用的 API 用法:未指定“GlobalWorkerOptions.workerSrc”。
未捕获类型错误:pdfjsLib.getDocument(...).then 不是函数
那么我应该怎么做才能解决这个问题,非常感谢
您必须将
GlobalWorkerOptions.workerSrc
设置为相同版本的/build/pdf.worker(.min).js
:
pdfjsLib.GlobalWorkerOptions.workerSrc =
"https://cdn.jsdelivr.net/npm/[email protected]/build/pdf.worker.min.js"; 👈
pdfjsLib.getDocument('./ahmed.pdf').promise.then(doc => {
console.log(`This document has ${doc._pdfInfo.numPages} pages.");
});
而且,正如@Pasi提到的,你必须通过链接
.getDocument()
来承诺.promise
。没有它,就没有.then()
。
请参阅本页上的“带有文档加载错误处理的 Hello World”示例以开始使用:https://mozilla.github.io/pdf.js/examples/
(在
.promise
并设置 getDocument()
属性之后,您的代码片段丢失了 workerSrc
)
从https://www.npmjs.com/package/react-pdf
检查此方法pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;