【发布时间】:2010-09-28 07:22:13
【问题描述】:
我有一个 HTML(不是 XHTML)文档,在 Firefox 3 和 IE 7 中呈现良好。它使用相当基本的 CSS 来设置样式并在 HTML 中呈现良好。
我现在正在寻找一种将其转换为 PDF 的方法。我试过了:
- DOMPDF: 桌子有很大的问题。我分解了我的大型嵌套表并且它有所帮助(在它消耗高达 128M 的内存然后死亡之前——这是我在 php.ini 中的内存限制)但它使表完全混乱并且似乎没有得到图片。表格只是一些基本的东西,带有一些边框样式,可以在各个点添加一些线条;
- HTML2PDF and HTML2PS:实际上我的运气更好。它渲染了一些图像(所有图像都是谷歌图表 URL),表格格式要好得多,但它似乎有一些我还没有弄清楚的复杂性问题,并且一直死于未知的 node_type() 错误。不知道从这里去哪里;和
- Htmldoc:这似乎在基本 HTML 上运行良好,但几乎不支持 CSS,所以你必须在 HTML 中做所有事情(我没有意识到在 Htmldoc-land 中它仍然是 2001 年......)所以它没用我。
我尝试了一个名为 Html2Pdf Pilot 的 Windows 应用程序,它实际上做得相当不错,但我需要至少在 Linux 上运行并且最好通过 Web 服务器上的 PHP 按需运行的东西。
我缺少什么,或者我该如何解决这个问题?
【问题讨论】:
-
Html2Pdf 实际上使用 IE 的嵌入式实例来呈现页面,然后将其转换为 PDF - 可能通过 IE 的打印机制。
-
因为这是 2008 年的问题,所以 dompdf 现在更加成熟。 ;-)
-
dompdf 现在支持 CSS 2.1,可以处理
@import、@media和@screen规则,并且会加载外部样式表。它还捆绑了它工作所需的一切,尽管您可以安装一些东西以获得比默认库更好的性能。 code.google.com/p/dompdf -
2015 更新:在研究了很多选项后,我们决定使用 wkhtmltopdf 它是一个很好的实用程序,我们在 CSS 方面遇到了困难,因为我们有外部 CSS 文件,但后来我们应用了放置 CSS 虚拟链接的技巧在我们要转换的 HTML 元素上并设置正确的路径,它的工作原理就像 MAGIC !!!
-
我相信很快每个人都会发现 Chrome/Chromium headless
chrome --headless --print-to-pdf="path/to/pdf" https://your_url是最丰富、最快和最简单的 html 到 pdf 生成工具 crbug.com/603559,因为它支持大多数 html 功能,开发人员依赖于 web 开发并且不像大多数其他库和工具一样吸收复杂的脚本。
标签: php html css pdf pdf-generation