我有一个问题。我尝试了一些将 html 转换为 PDF 的库,但它们不导入 CSS,因此我的 PDF 无效。
我试过“html2pdf”、“pdfmake”、“jspdf”..
PDFMake 对我没有帮助,因为它需要生成带有 HTML 数据的 JSON...
我想转换为 PDF 的文件结构是:
- html:www/templates/phase_one_report.html
- css:www/css/phase_one_report.css
一些想法?我在后端使用 nodeJS 和 sailsJS,在前端使用 javascript 和 ionic。
对不起我的英语。
最佳答案
这是一个难题。我还发现,现有的 HTML 到 PDF 库通常无法处理我扔给它们的 HTML 和 CSS。
我找到的最佳解决方案根本不是 Javascript:wkhtmltopdf .这本质上是一个包装 webkit 渲染引擎的程序,这样你就可以给它任何 webkit 可以渲染的 HTML + CSS,它会返回一个 PDF 文档。它做得非常出色,因为它实际上就像浏览器一样呈现文档。
你提到你正在使用 node.js
,但不清楚你的环境到底是什么,所以我假设你的报告可以通过 http 这样的 URL 获得://my.domain/phase_one_report.html
。实现此功能的最简单方法是在您的服务器上安装 wkhtmltopdf
应用程序,然后使用 child_process.exec
来执行它。
例如:
import { exec } from 'child_process';
// generate the report
// execute the wkhtmltopdf command
exec(
'wkhtmltopdf http://my.domain/phase_one_report.html output_file.pdf',
(error) => {
// send the PDF file to the client
}
);
wkhtmltopdf
有许多不同的命令行选项 - 您需要研究所有不同的配置方式。
如果您的报告不能通过 URL 访问,那么这会变得有点复杂 - 您需要内联 CSS 并将所有内容立即发送到 wkhtmltopdf
.
关于javascript - 使用 nodeJS 或 Javascript 将 HTML + CSS 转换为 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168428/