如何使用cdn导入pdf.js

问题描述 投票:0回答:3

我想在我的一个项目中使用 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 不是函数

那么我应该怎么做才能解决这个问题,非常感谢

javascript cdn pdf.js
3个回答
4
投票

您必须将

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()


1
投票

请参阅本页上的“带有文档加载错误处理的 Hello World”示例以开始使用:https://mozilla.github.io/pdf.js/examples/

(在

.promise
并设置
getDocument()
属性之后,您的代码片段丢失了
workerSrc


0
投票

https://www.npmjs.com/package/react-pdf

检查此方法
pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;
© www.soinside.com 2019 - 2024. All rights reserved.