这是一个难题。我还发现,现有的HTML到PDF库通常不会处理我扔给他们的HTML HTML &。
我发现的最佳解决方案根本不是Javascript:wkhtmltopdf。这实际上是一个包装了webkit渲染引擎的程序,因此您可以为其提供任何HTML + CSS,Webkit可以渲染它并返回PDF文档。它做得很出色,因为它实际上就像浏览器一样渲染文档。
您提到您正在使用node.js
,但尚不清楚您的环境是什么,因此我假定您的报告可在像http://my.domain/phase_one_report.html
这样的URL处获得。最简单的方法是在服务器上安装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
命令行选项 - 你需要考虑所有不同的方式进行配置。
如果您的报告是而不是可以通过网址访问,那么这会变得更加复杂 - 您需要内嵌CSS并将所有内容一次发送到wkhtmltopdf
。
您的css文件是否包含在html文件中?你能提供一些关于它不起作用的例子(图片)吗? “PDF无效”是什么意思?你的意思是风格混乱吗? – Alic
你试过[link](http://wkhtmltopdf.org/downloads.html)吗? – Mntfr
@ZichenJiang我认为“PDF无效”是因为它没有样式。我在phase_one_report.html中有一个按钮,它应该生成PDF – oihi08