我有一个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按需运行的应用程序。

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


当前回答

尝试获取最新的夜间dompdf构建-我使用的是一个旧版本,这是一个可怕的资源占用,并花费了很长时间来渲染我的pdf。在这里度过了一个夜晚。

只花了几秒钟就生成了PDF,而且它的渲染效果与PrinceXML/Docraptor一样好。自从我上次使用dompdf代码以来,他们似乎已经认真优化了它!

其他回答

Darryl Hein在上面提到TCPDF可能是一个好主意。Nicola Asuni的代码非常方便和强大。唯一的杀手是,如果你计划将PDF文件与生成的PDF合并,那么它就没有这些功能。您必须创建PDF,然后使用Sid Steward的PDFTK(www.pdflabs.com/tools/PDFTK the PDF toolkit/)进行合并。

我不认为php类是用css渲染xHtml页面的最佳方法。

当一个新的css规则出现时会发生什么?(很快css 3.0…)

显然,呈现html页面的最佳方式是浏览器。Firefox 3.0可以原生地以pdf格式“打印”,torissuent开发了一个扩展(命令行打印)来使用它。

无论如何,firefox作为pdf转换器仍有许多问题。。。

目前,我认为wkhtmltopdf是最好的(这是safari浏览器使用的),速度快,速度快。是的,也是开源的。。。看一看

如果你想找到一个完美的XHTML+CSS到PDF转换器库,那就忘掉它吧。因为这就像找到一个完美的浏览器(XHTML+CSS渲染引擎)。我们有吗?IE还是FF?

我在DOMPDF方面取得了一些成功。问题是,您必须修改HTML+CSS代码以符合库的工作方式。除此之外,我的成绩还不错。

见下文:

原始HTML

将HTML转换为PDF

最初在开场白中提到的HTML2PDF和HTML2PS是在谈论2009年的一个带有此链接的包

但还有更好的HTML2PDF

它是基于TCPDF的,尽管部分是法语。

您可以有在页面上重复的页眉或页脚,并有页码和总页数。参见其示例。我已经使用它三年多了,并推荐它。

精细渲染并不意味着什么。它是否有效?

所有浏览器都尽其所能在屏幕上显示一些内容,无论输入有多糟糕。当然,他们不会做同样的事情。如果需要与FireFox相同的渲染,可以使用其渲染引擎。它有pdf生成器,但工作量很大。