在2016年,从命令行将HTML文件转换为PDF的最佳方法是使用wkhtmltopdf.不幸的是,这似乎不再是真正的维护.它不支持很多像flexBox这样的东西.
可以使用无头铬/铬来做到这一点:
chrome --headless --print-to-pdf="path/to/pdf" https://your_url
但是没有选项,如边距,纸张类型,页眉/页脚控制,屏幕尺寸等.
似乎没有计划将这些添加到无头chrome中作为命令行选项(需要使用开发工具界面):
https://bugs.chromium.org/p/chromium/issues/detail?id=603559#c89
如何从命令行将HTML文件转换为PDF,从而控制文档的打印方式(边距等,从上面开始),并支持现代的html / css?
最佳答案
我无法找到解决方案,遗憾的是这里没有答案.所以我编写了一个使用无头chrome的nodejs包装器:这创建了一个命令行工具,您可以使用它将HTML页面转换为PDF,就像它们在chrome中一样.
https://www.npmjs.com/package/chromehtml2pdf
要安装它,你需要npm,并输入:
npm install chromehtml2pdf
或者使全局可供系统上的所有用户使用
npm install -g chromehtml2pdf
命令行用法:
chromehtml2pdf --out=file.pdf --landscape=1 https://www.npmjs.com/package/chromehtml2pdf
如需帮助(查看所有可能的选项),请键入:
chromehtml2pdf --help
此时,我只在Ubuntu 14.04上测试过它,但我不明白它为什么不能移植.