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

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


当前回答

使用MPDF!==

a) 在文件夹中提取

b) 在您的文件夹中创建file.php并插入以下代码:

<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style="color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output();   exit;
 ?>

c) 从浏览器中打开file.php

2) 使用pdfToHtml!

将pdftohtml.exe解压缩到根文件夹:在该文件夹的anyfile.php文件中,输入以下代码(假设也有一个源example.pdf):输入FinalFolder,将有转换后的文件(与源PDF一样多的页面)

其他回答

Zend的devzone上有一个关于在没有任何外部库的情况下从php生成pdf的教程(第1部分,第2部分)。我从未实现过这种解决方案,但由于它都是php,所以您可能会发现它更灵活地实现和调试。

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

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

TCPDF工作正常,无依赖性,是免费的,并不断修正错误。如果提供的HTML/CSS内容格式良好,则速度合理。我通常从50-300kB的HTML输入(包括CSS)生成,并在1-3秒内获得10-15个PDF页面的PDF输出。

我强烈建议在将任何内容发送到TCPDF之前,使用整洁的库作为HTML漂亮的格式化程序。

Web API

如果有人总是搜索这种东西,有一个免费的网站可以让你将html代码和页面转换为pdf。还有一个(非常小的)api,允许您从url获取pdf文件。

在这里检查

我建议按照TCPDF或DOMPDF的顺序。