javascript - 使用 pdf.js 将 PDF 渲染为 PNG 时出现 "Invalid canvas size"

标签 javascript node.js pdf pdf.js

我在使 PDF.js 库将 PDF 渲染为 PNG 文件时遇到问题。

我的步骤是:

  1. mkdir pdf-test
  2. npm init
  3. npm install pdfjs-dist 断言 Canvas
  4. examples 复制 pdf2png.js页面到工作文件夹
  5. 将随机 PDF 复制到此文件夹,并在第 54 行的 pdf2png.js 中设置其路径
  6. Node pdf2png.js

我得到以下输出:

# PDF document loaded.
(node:13760) UnhandledPromiseRejectionWarning: AssertionError [ERR_ASSERTION]: Invalid canvas size
    at NodeCanvasFactory_create [as create] (D:\tests\pdf-test\pdf2png.js:23:5)
    at D:\tests\pdf-test\pdf2png.js:70:21

令人惊讶的是,如果我克隆整个 PDF.js 存储库并按照说明从源代码构建它,脚本就会正常工作,并且我会得到正确渲染的 PNG 文件。

从 NPM 安装预构建版本时缺少什么?

最佳答案

您缺少更新。

最新的 pdfjs-dist npm 版本为 v2.0.943,于 2018 年 10 月 27 日发布,而最新的 GitHub 版本为 v2.1.266,于 2019 年 2 月 16 日发布。

此最新更新有以下更改日志:migrate to canvas 2.x api这也影响了 pdf2png.js 文件,如下所示:

enter image description here

因此,如果您使用 pdf.js GitHub 存储库中的最新 pdf2png.js 文件,则 pdfjs-dist npm 包和 pdf2png.js 文件之间存在某种版本不匹配。

关于javascript - 使用 pdf.js 将 PDF 渲染为 PNG 时出现 "Invalid canvas size",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55917554/

相关文章:

javascript - 检查组合字符串+数组的所有匹配项

javascript - 二进制补码相同的代码 python/JavaScript 不同的结果

javascript - 在用 JavaScript 上传之前减小 PDF 文档大小?

java - 使用 iText Java 向 PDF 目录添加新条目

php - 仅使用 php 将 PDF ver 1.7 转换为 ver 1.6

javascript - 如何决定何时使用 Node.js?

javascript - 如何使用 Angular $http 将数据 POST 到 PHP

javascript - 如何使用 promises 正确处理 express.js 中的错误(字符串或对象)

javascript - 如何在 WKWebView 中调试 javascript 代码

javascript - 如何通过 html "JS file"调用 "button-click"并且 JS 文件正在使用 shell.js 运行 bash 脚本