【问题标题】:Unhandled Error: Undefined variable: PDFJS only with Opera未处理的错误:未定义的变量:PDFJS 仅适用于 Opera
【发布时间】:2017-02-04 18:54:42
【问题描述】:

我使用的pdfjs导入如下

<script type="text/javascript" src="https://rawgithub.com/mozilla/pdf.js/gh-pages/build/pdf.js"></script>

我有将 PDF 渲染到画布的脚本:

function renderPDF(url, canvas_name, scale) {
    function renderPage(page) {
        var canvas = $("#"+canvas_name)[0];
        var ctx = canvas.getContext('2d');
        var viewport = page.getViewport(canvas.width / page.getViewport(scale).width);
        var renderContext = {

          canvasContext: ctx,
          viewport: viewport
        };

        canvas.height = viewport.height;
        canvas.width = viewport.width;

        page.render(renderContext);
    }
    function renderPages(pdfDoc) {
        pdfDoc.getPage(1).then(renderPage);
    }
    PDFJS.disableWorker = true;
    PDFJS.getDocument(url).then(renderPages);
}; 

它与 Chrome 和 Firefox 完美配合。但是使用 Opera,我收到以下错误

Unhandled Error: Undefined variable: PDFJS

我做错了什么?

编辑:

现在我注意到,在 Firefox 中,我在控制台中收到以下错误表单 pdf.js(尽管它按预期工作):

Error: Invalid parameter in getDocument, need either Uint8Array, string or a parameter object

【问题讨论】:

  • 您不应该直接从 GitHub 加载 pdfJS - 它不是 CDN。将其下载到您的服务器或查找 CDN
  • @mplungjan 好的,现在它不会抛出任何错误。但也不起作用。我会更新问题。
  • 请注意,OPERA 包含 pdfjs 作为渲染器。也许有冲突

标签: javascript pdf pdf.js


【解决方案1】:

按照 mplungjan 的建议,当我下载 pdfjs 并在本地使用时,问题已解决。

此外,有必要完全按此顺序在模板中加载更多文件:

<script src="js/pdfjs/web/compatibility.js"></script>
<script src="js/pdfjs/build/pdf.js"></script>
<script src="js/pdfjs/build/pdf.worker.js"></script>

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    相关资源
    最近更新 更多