pdf-generation 使用PHP将HTML + CSS转换为PDF?
看看wkhtmltopdf
。 它是开源的,基于webkit和免费。
我们here写了一个小教程。
编辑(2017):
如果今天要建造一些东西,我就不会再走这条路了。
但会改用http://pdfkit.org/ 。
可能剥离它的所有nodejs依赖关系,以在浏览器中运行。
好的,我现在正在用这个砖头撞墙。
我有一个在Firefox 3和IE 7中呈现良好的HTML(不是XHTML)文档。它使用相当基本的CSS来设置它的样式,并且在HTML中呈现良好。
我现在正在将它转换为PDF。 我努力了:
- DOMPDF :它有很多表格问题。 我分解了我的大型嵌套表,并且它有所帮助(在它耗尽高达128M的内存然后死去之前 - 这是我在php.ini中对内存的限制),但它使得表格变得非常混乱,似乎并没有得到图片。 这些表只是基本的东西,有些边框样式可以在不同的点添加一些线条;
- HTML2PDF和HTML2PS :我其实有更好的运气。 它呈现了一些图像(所有图像都是谷歌图表网址),表格格式更好,但它似乎有一些复杂性问题,我还没有弄清楚,并且一直伴随着未知的node_type()错误。 不知道该从哪里出发; 和
- Htmldoc :这对于基本的HTML似乎工作得很好,但几乎不支持CSS,所以你必须用HTML做所有事情(我没有意识到它仍然是2001年在Htmldoc-land中),所以对我来说是没用的。
我尝试了一个名为Html2Pdf Pilot的Windows应用程序,它实际上做了一个相当不错的工作,但我需要的东西至少在Linux上运行,理想情况下通过Web服务器上的PHP按需运行。
我真的不敢相信我会陷入困境。 我错过了什么吗?
你为什么不尝试mPDF 2.0版 ? 我用它来创建PDF文档。 它工作正常。
与此同时,mPDF版本为5.7,与HTML2PS / HTML2PDF相比,它得到了积极维护
但请记住,文档确实很难处理。 例如,看看这个页面: https://mpdf.github.io/ : https://mpdf.github.io/ 。
基于html到pdf的非常基本的任务可以通过这个库来完成,但是更复杂的任务需要一些时间来阅读和理解文档。
结帐TCPDF 。 它具有一些HTML到PDF的功能,可能足以满足您的需求。 它也是免费的!
好消息! Snappy !
Snappy是一个非常简单的开源PHP5库,允许从url或html页面生成缩略图,快照或PDF。 而且......它使用了优秀的基于webkit的wkhtmltopdf
请享用! ^ _ ^
那么如果你想找到一个完美的XHTML + CSS到PDF转换器库,忘记它。 这远非可能。 因为它就像找到一个完美的浏览器(XHTML + CSS渲染引擎)。 我们有吗? IE还是FF?
我在DOMPDF方面取得了一些成功。 问题是你必须修改你的HTML + CSS代码才能使用图书馆的工作方式。 除此之外,我有很好的结果。
见下文:
我正在使用fpdf来使用php生成pdf文件。 到目前为止,它对我来说工作很好,可以生成简单的输出。
如果您有权访问命令行,则可以使用PhantomJS从URL
(远程或本地)创建PDF
。
它工作得很好,并且是一个免费的解决方案。
看看这个github.com/ariya/phantomjs/blob/master/examples/rasterize.js脚本为这个确切的问题。
尝试抓住最新的每晚dompdf构建 - 我使用的是一个较老的版本,这是一个可怕的资源猪,并永远采取我的PDF格式。 从here抓住一晚之后。
它只需要几秒钟就可以生成PDF,而且它与PrinceXML / Docraptor一样可以很好地渲染。 似乎他们自从我上次使用它以来已经认真优化了dompdf代码!
我不认为一个PHP类将是用CSS呈现xHtml页面的最佳选择。
当新的css规则出来时会发生什么? (很快css 3.0 ...)
显而易见,呈现html页面的最佳方式是浏览器。 Firefox 3.0可以本地“打印”为pdf格式,torisugary开发了一个扩展(命令行打印)来使用它。 在这里你会找到它。
无论如何,仍然有许多问题runninr firefox 只是作为一个PDF转换器...
目前,我认为wkhtmltopdf是最好的(这是Safari浏览器使用的),快速,快速,真棒。 是的,开源,以及... wkhtmltopdf
精细的渲染并不意味着什么。 它是否验证?
无论输入有多糟糕,所有浏览器都尽可能在屏幕上显示某些内容。 当然,他们不会做同样的事情。 如果你想和FireFox一样的渲染,你可以使用它的渲染引擎。 有它的pdf生成器。 虽然这是一项非常多的工作。
我推荐TCPDF或DOMPDF,是这样的顺序
HTML to PDF转换是否真的需要使用PHP在服务器端进行?
我刚刚遇到了jsPDF ,这是一个使用HTML5 / JavaScript的客户端解决方案。 麻省理工学院许可的代码也在GitHub上 。
不是PHP ,而是一个Java库 ,它执行以下任务:
Flying Saucer采用XML或XHTML并将CSS 2.1兼容的样式表应用于其中,以渲染为PDF
它可以从PHP通过system()
或类似的调用使用。 尽管它需要input
XML格式良好。