当前位置:  开发笔记 > 编程语言 > 正文

如何自动执行HTML到PDF的转换?

如何解决《如何自动执行HTML到PDF的转换?》经验,为你挑选了5个好方法。

我一直在使用htmldoc,但是我遇到了一些相当严重的限制.我需要最终解决方案才能在Linux机器上运行.我将从Perl应用程序调用此库/实用程序/应用程序,因此任何Perl接口都将是一个奖励.



1> 小智..:

很抱歉发现这篇旧帖子,但它在我搜索最佳HTML/PDF转换工具时首先出现.在Linux上,wkhtmltopdf非常好(考虑到CSS等)和GPL.


就像文档说的那样,你需要带有补丁Qt的静态版本来运行它而不需要X服务器.

2> sudoman..:

WeasyPrint生成带有可选文本和超链接的精美PDF.

weasyprint input.html output.pdf

如果您wkhtmltopdf改用,请尝试以下选项:

wkhtmltopdf --margin-bottom 20mm --margin-top 20mm --minimum-font-size 16 ...


这应该是选定的答案,它是免费的,开源的,是的,结果是惊人的!强烈推荐。

3> Orion Edward..:

PrinceXML是我见过的最好的(它解析常规HTML以及XML/XHTML).它是如何最好的?好吧,它通过了acid2测试,我认为这是非常令人印象深刻的

然而,它非常昂贵


我有同样的问题.我最近评估了Prince XML,并且可以保证它是一个非常棒的应用程序.输出的速度和质量简直令人难以置信.

4> Roben..:

自Chrome 59以来,有一种新的无头模式.由于所有其他解决方案真的很难与更新(或不再那么新)的CSS功能如flexbox,这在我的情况下是产生正确PDF输出的唯一解决方案.

要从本地html文件创建pdf,只需使用以下命令: chrome --headless --disable-gpu --print-to-pdf file:///path/to/myfile.html.

对于Mac OS替代chrome/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome.

到目前为止我注意到的唯一缺点是(目前)你无法通过stdin传递html,但创建一个临时文件并不是一个问题.

有关详细信息,请参阅https://developers.google.com/web/updates/2017/04/headless-chrome#create_a_pdf_dom

更新:事实证明,chrome人员很可能会为此任务提供某种节点模块,最终会弃用无头模式(https://bugs.chromium.org/p/chromium/issues/detail?id = 719921).

最好的办法是使用https://developers.google.com/web/updates/2017/04/headless-chrome#node中记录的puppeteer 模块使用基于节点的方法,并通过Page.printToPDF打印页面命令,也可以进行一些额外的配置.

当然,您也可以从节点以外的任何其他环境(即PHP脚本)连接到调试控制台websocket.



5> bmdhacks..:

我为你做了一些谷歌搜索,并提出了两个选项.可能还有更多,我的谷歌策略是尝试"webkit命令行pdf"和"gecko命令行pdf",基本上寻找在命令行渲染器中嵌入两个流行的开源渲染引擎的命令行程序.这是我发现的:

Firefox命令行打印机 - 输出到pdf和png

wkpdf - 虽然这是用于mac,但它可能非常便携.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有