微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 cdn 导入 pdf.js

如何解决如何使用 cdn 导入 pdf.js

我想将 pdf.js 用于我的一个项目,但我遇到了导入问题,基本上,CDN 不起作用

这是我的代码

    <!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/pdfjs-dist@2.7.570/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/pdfjs-dist@2.7.570/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()。没有它,就没有 for (const item of urls) { const url = item.url const ID = url.slice((url.search("=",0) + 1),url.length) const YtResponse = GetByIdYouTube(ID) const data = await YtResponse const date = item.date const newItem = {data,url,date} setDisplay(display.concat(newItem)) } }; ```

,

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

(您的代码段在 .promise 之后缺少 getDocument() 并设置了 workerSrc 属性)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。