【问题标题】:"Invalid canvas size" while rendering PDF to PNG using pdf.js使用 pdf.js 将 PDF 渲染为 PNG 时出现“无效的画布大小”
【发布时间】:2019-09-18 21:58:53
【问题描述】:

我无法让 PDF.js 库将 PDF 呈现为 PNG 文件。

我的步骤是:

  1. mkdir pdf-test
  2. npm init
  3. npm install pdfjs-dist assert canvas
  4. pdf2png.jsexamples页面复制到工作文件夹
  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 安装预构建版本时我缺少什么?

【问题讨论】:

    标签: javascript node.js pdf pdf.js


    【解决方案1】:

    您错过了更新。

    最新的pdfjs-dist npm 版本是来自Oct 27, 2018v2.0.943,而最新的 GitHub 版本是来自Feb 16, 2019v2.1.266

    此最新更新包含此更改日志:migrate to canvas 2.x api,这也影响了pdf2png.js 文件,您可以在此处看到:

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

    【讨论】:

    • 哇,谢谢!更新到2.1.226 确实解决了这个问题!
    猜你喜欢
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多