使用PHP将HTML转换为PDF?

57

可能是重复问题:
使用PHP将HTML + CSS转换为PDF?

是否可以使用PHP将HTML页面转换为PDF,如果可以,如何实现?

具体来说,该页面是动态生成的发票。因此,我希望它可以使用以下方式加载:

http://example.com/invoices/3333

需要将HTML输出转换为PDF。

任何好的库都可以胜任此任务。


GrabzIt有一个免费的PHP库,可以将HTML转换为PDF:http://grabz.it/html-to-pdf-image-api.aspx - user676505
1个回答

63
如果您想从php中创建pdf,pdflib可以帮助您(正如其他人建议的那样)。
否则,如果您想通过PHP将HTML页面转换为PDF,则会遇到一些麻烦。三年来,我一直尽力而为。
因此,我知道的选择有: DOMPDF:用于包装html并构建pdf的php类。工作良好,可定制(如果您了解php),基于pdflib,如果我没记错,它甚至采用了一些CSS。坏消息是:当html很大或复杂时速度较慢。 HTML2PS:与DOMPDF相同,但这个选项首先将其转换为.ps(ghostscript)文件,然后再转换为您需要的任何格式(pdf、jpg、png)。对我而言比dompdf稍微好一点,但具有相同的速度问题...但是,与CSS更兼容。
这两个都是php类,但是如果您可以在服务器上安装一些软件,并通过passthru()或system()访问它,请也看看这些内容:

wkhtmltopdf:基于WebKit(Safari的包装器),非常快速和强大。似乎这是目前将HTML页面实时转换为PDF的最佳工具,对于一个包含CSS2的3页xHTML文档只需要2秒钟。这是一个近期的项目,Google Code 页面经常更新。

htmldoc:这个工具很强大,几乎从不崩溃。虽然该项目自2007年以来看起来已经停止开发,但如果您不需要CSS兼容性,则可能会对您有所帮助。


3
那么,Daniel,哪一个是最适合 CSS 的呢?是 WkHTMLToPdf 吗? - Ali
1
是的,实际上我们也在尝试使用 Firefox (通过 torisugary 的命令行插件),因为你知道,没有什么比浏览器更能处理 CSS 了。wkhtmltopdf 在 Safari 上运行,所以在我看来实际上这是最好的选择。希望 Mozilla 能尽快推出类似于 Gecko 的东西。 - Strae
丹,你能通过PHP调用wkhtml吗?似乎需要手动使用shell调用。 - Ali
1
在我的经验中,wkhtmltopdf 是效果最好、设置步骤最少的工具。 - Andrew Ensley
但是它们在使用flexbox和grid时都失败了,对吧? - s3c
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接