【问题标题】:Creating PDF from html template in node js在节点 js 中从 html 模板创建 PDF
【发布时间】:2021-01-14 16:09:25
【问题描述】:
我有一个需要创建 PDF 的要求。对我来说,最好的方法是渲染 html 模板并使用任何第三方库创建 PDF。我遇到了使用 ejs 呈现 HTML 并使用 html-pdf 创建 pdf 的解决方案。虽然它工作正常,但我遇到了分页问题。
有一个流行的模块pdfkit。但它使用自己的概念和程序来呈现 pdf。对于节点,它不会渲染 html 文件,但对于 python,它会渲染 html 模板。
请告诉我如何使用 pdfKit 将 html 模板呈现为 pdf,以及呈现 html 并转换为 pdf 的最佳方式是什么?
谢谢
【问题讨论】:
标签:
javascript
node.js
pdf
wkhtmltopdf
pdfkit
【解决方案1】:
Puppeteer 是将 HTML 转换为 PDF 以及网页抓取的最佳方式。
从 HTML 生成 PDF 的简短说明你可以看到here
此外,Chrome DevTools 团队维护该库,因此它是最佳解决方案。
关于分页符。这个问题可以在 HTML 代码中解决。有一个样式选项可以解决这个问题。
style="page-break-after:always;"
【解决方案2】:
使用 NPM 上可用的 PDF 转换器库(如 pdfkit)的问题在于,您必须在 html 模板中重新创建页面结构才能获得所需的输出。
呈现 html 并转换为 pdf 的最佳方法之一是在 NodeJs 上使用 Puppeteer。 Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chrome 或 Chromium。在您的情况下,它可用于生成 html 页面的屏幕截图和 PDF。