使用 Chrome pdfium 将 HTML 转换为 PDF

Posted

技术标签:

【中文标题】使用 Chrome pdfium 将 HTML 转换为 PDF【英文标题】:HTML to PDF conversion using Chrome pdfium 【发布时间】:2014-12-20 18:16:21 【问题描述】:

谁能建议如何使用 chrome pdfium 将 html 转换为 PDF。

因为,我尝试了 pdf.js 和其他几个,但它没有给我一个正确的结果。

我认为 chrome pdfium 可以正确处理它们。因此,我想尝试使用 pdfium 从 HTML 源生成 PDF 文件。

谢谢。

【问题讨论】:

【参考方案1】:

PDFium(和PDF.js)只是 PDF 查看器,您不能使用它们将 HTML 转换为 PDF。

在 Chrome 中实际的 PDF 生成是由 printing component 使用 Blink(渲染引擎)和 Skia(图形堆栈)完成的。正在努力将打印功能与打印 UI 分离,以便第三方项目可以使用打印功能 (crbug.com/311308),但它仍在进行中。Chrome 59 及更高版本可用于通过 --print-to-pdf 标志将 HTML 转换为 PDF。有关特定功能本身,请参阅 crbug.com/603559,有关一般无头 Chromium 的文档,请参阅 https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md。此示例加载 example.com 并将结果输出到 `path/to/file.pdf。

chrome --headless --print-to-pdf=path/to/file.pdf https://example.com

如果您想知道如何在 javascript 中使用 Chrome 的内置 PDF 生成器,请按照以下问题(尚未回答):Javascript call programmatically the "Save as PDF" feature of Chrome dialog print。

【讨论】:

无头 Chrome 文档的 URL 是 chromium.googlesource.com/chromium/src/+/lkgr/headless/… @pfurbacher 谢谢。我在链接和下一个单词之间留了一个空格来修复链接。 这太棒了!但是如何通过 CLI 发送打印参数,例如“无边框”、“保留背景图形”...? FYI 打印到 pdf 在 HTML 包含脚本的异步加载等情况下效果不佳【参考方案2】:

您可以使用我的html-pdf-chrome 之类的预构建库来使用 Chrome 从 HTML 生成 PDF。

【讨论】:

以上是关于使用 Chrome pdfium 将 HTML 转换为 PDF的主要内容,如果未能解决你的问题,请参考以下文章

pdfium使用

pdfium 之二

Pdfium 保存 PDF 文档增量

Visual Studio编译和运行wxPDFView

pdfium舍弃v8依赖

pdfium单元测试