"Invalid canvas size" 使用 pdf.js 将 PDF 渲染为 PNG

"Invalid canvas size" while rendering PDF to PNG using 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 复制到此文件夹,在第 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 版本是 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 文件.