使用pdf.js将PDF渲染为PNG时出现“无效的画布大小”

时间:2019-04-30 09:10:03

标签: javascript node.js pdf pdf.js

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

我的步骤是:

  1. mkdir pdf-test
  2. npm init
  3. npm install pdfjs-dist assert canvas
  4. pdf2png.jsexamples页复制到工作文件夹
  5. 将随机PDF复制到该文件夹​​,在第pdf2png.js行的第54行上设置其路径
  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安装预构建版本时,我缺少什么?

1 个答案:

答案 0 :(得分:0)

您缺少更新。

最新的pdfjs-dist npm版本是v2.0.943的{​​{1}},而最新的GitHub版本是Oct 27, 2018的{​​{1}}。

此最新更新具有以下更改日志:migrate to canvas 2.x api也影响了v2.1.266文件,如您在此处看到的那样:

enter image description here

因此,如果您使用来自Feb 16, 2019 GitHub存储库中的最新pdf2png.js文件,则pdf2png.js npm软件包和pdf.js文件之间存在某种版本不匹配。 / p>