我有一个HTML(而不是XHTML)文档,可以在Firefox3和IE7中显示良好。它使用相当基本的CSS来设置样式,并在HTML中呈现良好的效果。

我现在正在寻找一种将其转换为PDF的方法。我尝试过:

DOMPDF:它在表格方面存在巨大问题。我分解了我的大型嵌套表,这有助于(之前它只消耗了128M的内存,然后就死了——这是我在php.ini中的内存限制),但它把表弄得一团糟,而且似乎没有图像。这些表格只是一些基本的东西,带有一些边框样式,可以在各个点添加一些线条;HTML2PDF和HTML2PS:实际上我在这方面运气更好。它呈现了一些图像(所有图像都是Google Chart URL),表格格式要好得多,但它似乎有一些复杂性问题,我还没有弄清楚,并且一直因未知的node_type()错误而死亡。不知道从这里去哪里;和Htmldoc:这在基本的HTML上似乎很好,但几乎不支持CSS,所以你必须用HTML做所有的事情(我没有意识到在Htmldoc领域还是2001年…),所以这对我来说是无用的。

我尝试了一个名为Html2Pdf Pilot的Windows应用程序,它确实做得很好,但我需要至少在Linux上运行,最好通过Web服务器上的PHP按需运行的应用程序。

我缺少什么,或者如何解决这个问题?


当前回答

好消息!精炼的

Snappy是一个非常简单的开源PHP5库,允许从url或html页面生成缩略图、快照或PDF。和它使用了优秀的基于webkit的wkhtmltopdf

享受^_^

其他回答

我建议DocRaptor(使用PrinceXML作为“引擎”)

为什么不试试mPDF 2.0版?我用它来创建PDF文档。它工作得很好。

同时,mPDF版本为5.7,与HTML2PS/HTML2PDF相比,它得到了积极维护

但请记住,文档确实很难处理。例如,查看此页面:https://mpdf.github.io/.

使用这个库可以完成从html到pdf的非常基本的任务,但更复杂的任务需要一些时间阅读和“理解”文档。

重要信息:请注意,此答案写于2009年,在2019年,它可能不是当今最具成本效益的解决方案。今天的在线替代方案比当年更好。

以下是您可以使用的一些在线服务:

PDF移位重新包装PDF图层DocRaptor公司HTMLPDFAPIHTML到PDF Rocket


看看PrinceXML。

它绝对是最好的HTML/CSS到PDF转换器,虽然它不是免费的(但是,嘿,你的编程可能也不是免费的,所以如果它为你节省了10个小时的工作,你就可以在家里自由使用了(因为你还需要考虑到,替代解决方案将需要你用正确的软件设置一个专用服务器)

哦,是的,我有没有提到这是第一个(可能也是唯一一个)实现完整ACID2的HTML2PDF解决方案?

PrinceXML示例

不是PHP,而是一个Java库,它执行以下操作:

Flying Saucer采用XML或XHTML并应用CSS 2.1兼容样式表,以便呈现为PDF

它可以通过system()或类似的调用从PHP中使用。尽管它要求输入的XML格式良好。

上面已经提到了,但我想确认一下,mpdf是目前最简单、最强大、最免费的HTML-to-pdf转换器。天空真的是极限。您甚至可以生成用户生成的动态数据的pdf。

例如,一个客户想要一个CMS系统,这样他就可以更新他在俱乐部播放的音乐的曲目列表。这没什么问题,但他也希望用户能够下载播放列表的.pdf,因此这个可下载的pdf也必须由cms进行更新。多亏了mpdf,通过一些简单的循环和穿插的变量,我可以做到这一点。我以为要花上几周时间的事情真的花了我几分钟。

很好的文章帮助我开始了。