如何将现代HTML转换为PDF
2016年,从命令行将HTML文件转换为PDF的最佳方式是使用wkhtmltopdf。不幸的是,这似乎不再是真正的维持。它不支持很多东西,比如flexbox 可以使用无头铬/铬来实现: chrome --headless --print-to-pdf="path/to/pdf" https://your_url chrome--无头--打印到pdf=“path/to/pdf”https://your_url 但它没有诸如页边距、纸张类型、页眉/页脚控制、屏幕大小等选项 似乎没有计划将这些作为命令行选项添加到headless chrome中(需要使用开发工具界面):如何将现代HTML转换为PDF,html,css,google-chrome,pdf,Html,Css,Google Chrome,Pdf,2016年,从命令行将HTML文件转换为PDF的最佳方式是使用wkhtmltopdf。不幸的是,这似乎不再是真正的维持。它不支持很多东西,比如flexbox 可以使用无头铬/铬来实现: chrome --headless --print-to-pdf="path/to/pdf" https://your_url chrome--无头--打印到pdf=“path/to/pdf”https://your_url 但它没有诸如页边距、纸张类型、页眉/页脚控制、屏幕大小等选项 似乎没有计划将这些作为命令
如何从命令行将HTML文件转换为PDF,该命令行控制文档的打印方式(页边距等),并支持现代HTML/css?当然,一旦可以从命令行转换,您也可以使用您选择的编程语言进行转换。这里有一个命令行工具,您可以使用它将HTML页面转换为PDF,就像在chrome中一样。一旦安装了它,您就可以将它与您想要的任何编程语言(Python、Java、PHP等)一起使用,从HTML网页或文档自动生成PDF。所有的依赖关系在将来都应该得到很好的维护,因此它不应该像wkhtmltopdf那样存在难以维护的问题 网址: 要安装它,您需要npm,并键入:
npm install chromehtml2pdf
或者使系统上的所有用户都可以全局使用它
npm install -g chromehtml2pdf
命令行用法:
chromehtml2pdf --out=file.pdf --landscape=1 https://www.npmjs.com/package/chromehtml2pdf
要获得帮助(查看所有可能的选项),请键入:
您可以在github上自由地进行拉取请求。如果您只想摆脱Chrome的默认页眉/页脚,并控制有问题的页面,那么您可以使用CSS来实现这一点,而不必使用比简单的命令行调用更复杂的东西
@media print {
@page { margin: 0; }
}
当然,你可能确实想要在你的页面上留有空白,所以你需要伪造这些空白。这样做的复杂性取决于要发送到PDF的页面数量。如果您使用的是单页传呼机,则链接答案中建议的正文边距将起作用。如果没有,则需要使用其他方法。例如,对于多个页面,可以在左侧和右侧添加正文填充,然后将每个页面的内容包装在标记中,并在顶部和底部留有边距
Project可以做到这一点,还可以做得更多。包括操纵以及、、等
试一试
docker run --rm -p 3000:3000 thecodingmachine/gotenberg:6
范例
curl --request POST \
--url http://localhost:3000/convert/url \
--header 'Content-Type: multipart/form-data' \
--form remoteURL=https://brave.com \
--form marginTop=0 \
--form marginBottom=0 \
--form marginLeft=0 \
--form marginRight=0 \
-o result.pdf
-使用Google Chrome headless进行HTML和标记转换
未满足对等依赖webpack@3.6.0
和与您的操作系统或体系结构不兼容:fsevents@1.2.4
在Ubuntu 18.04$chromehtml2pdf--help/home/miguelfg/.nvm/versions/node/v6.4.0/lib/node_modules/chromehtml2pdf/index.js:144上(async()=>{^SyntaxError:意外标记(…我已经更新了依赖项。你现在可以尝试一下;如果你仍然有问题,可以在github上报告。你好@juacala,我使用你的应用程序时遇到了单击以扩展内容的问题。你能就这个问题给我一些建议吗?非常感谢你的帮助!你似乎很了解Gotenberg。你知道它是否可以创建可填充表单输入,然后可以使用Adobe Reader填写和保存?@Prometheus我认为它不会将您的HTML表单转换为表单数据格式。请参阅问题谢谢,不知道为什么我的搜索没有找到它。
curl --request POST \
--url http://localhost:3000/convert/url \
--header 'Content-Type: multipart/form-data' \
--form remoteURL=https://brave.com \
--form marginTop=0 \
--form marginBottom=0 \
--form marginLeft=0 \
--form marginRight=0 \
-o result.pdf