如何将现代HTML转换为PDF

jua*_*ala 7 html css pdf google-chrome

在2016年,从命令行将HTML文件转换为PDF的最佳方法是使用wkhtmltopdf。不幸的是,似乎并没有真正保持这种状态。它不支持很多东西,例如flexbox。

可以使用无头铬/铬来做到这一点:

chrome --headless --print-to-pdf =“ path / to / pdf” https:// your_url

但是没有诸如边距,纸张类型,对页眉/页脚的控制,屏幕尺寸等选项。

似乎没有计划将它们添加到无头chrome中作为命令行选项(需要使用dev工具界面):https : //bugs.chromium.org/p/chromium/issues/detail?id=603559# c89

如何从命令行将HTML文件转换为PDF,从而可以控制文档的打印方式(如上的边距等),并支持现代的html / css?当然,一旦可以从命令行转换,也可以使用所选的编程语言进行转换。

jua*_*ala 6

这是一个命令行工具,可用于将HTML页面转换为PDF,就像在chrome中一样。安装后,可以将其与所需的任何编程语言(Python,Java,PHP等)一起使用,以自动从HTML网页或文档生成PDF。所有的依赖项都应该在将来得到很好的维护,因此它不应该与wkhtmltopdf之类的难以维护的问题相同。

网址:

https://www.npmjs.com/package/chromehtml2pdf

https://github.com/dataverity/chromehtml2pdf

要安装它,您需要npm,然后键入:

npm install chromehtml2pdf
Run Code Online (Sandbox Code Playgroud)

或使其对系统上的所有用户全局可用

npm install -g chromehtml2pdf
Run Code Online (Sandbox Code Playgroud)

命令行用法:

chromehtml2pdf --out=file.pdf --landscape=1 https://www.npmjs.com/package/chromehtml2pdf
Run Code Online (Sandbox Code Playgroud)

如需帮助(查看所有可能的选项),请键入:

chromehtml2pdf --help
Run Code Online (Sandbox Code Playgroud)

随时在github上发出拉取请求。