php - 使用PHP将HTML CSS转换成PDF?

  显示原文与译文双语对照的内容

好的,我现在用这个把我的头撞到一堵砖墙上。

我有一个 HTML ( 不是 XHTML ) 文档,它在 Firefox 3和 IE 7中表现良好。 它使用了相当基本的CSS来样式化,并在HTML中表现良好。

我现在正在将它转换为 PDF 。 我尝试过:

  • DOMPDF web: 表有很大的问题。 我精炼了我的大表格,所以它帮助( 在它消耗 128个内存之前,dying--thats在 php.ini 中的内存限制) 但它使一个完整的把很多表和好像不能得到图像。 这些表格只是一些基本的东西,一些边框样式可以在不同的点添加一些线条;
  • HTML2PDF和 HTML2PS: 其实我还是祝你好运。 具有未知 node_type() errors,它呈现的一些映像( 所有图片都是谷歌图表网址),同时表格式能得到远可以这似乎有一些复杂性问题我还没有想到却并保持 dying. 不确定从哪里离开;以及
  • 在HTML中( 我没有意识到它仍然是 2001中的。) 所以是没用的,me, Htmldoc: 来自某些发件人的图片上这似乎没有问题,但几乎已经固定使用;没有任何对CSS的支持,因此你所要做

笔者曾尝试过 Windows 叫Html2Pdf飞行员那实际上做得相当体面的工作,但我需要的东西至少应用运行在Linux上和理想情况下运行on-demand通过PHP在web服务器上。

我真的不能相信我是这么固执。 好像少了点什么?

时间:

查看 PrinceXML

这绝对是最好的html/css到PDF转换器,虽然它不是免费的( 但嘿,你的编程也是免费的,所以你的编程也是免费的,所以你的编程需要使用正确的软件来安装一个专用的服务器)

哦,是的,我提到这是第一个( 而且可能只有) HTML2PDF解决方案,它完成了 ACID2 ? !

PrinceXML示例

*** 脚注:请注意,这个答案是 2009年编写的,它可能不是今天最经济的解决方案。 在这个比他们在回then,浏览器和其他开源的渲染器已经成为大量学校作文或者电子邮件

查看 WKHTMLTOPDF 。 它是开源的,基于 web kit和免费。

我们在这里写了一个小教程

经过一些调查和一般的hair-pulling之后,解决方案似乎是 HTML2PDF 。 于那program,相关 DOMPDF 工作完成的可怕的事涉及表格。边框和中等复杂的布局和 htmldoc 似乎相当健壮,但几乎完全地无 CSS just. CSS-ignorant和我不想回到做做网络布局

HTML2PDF看起来最有前途,但我一直在向node_type提供关于空引用参数的奇怪错误。 我终于找到了这个解决方案。 基本上,PHP 5.1. x 可以很好地使用 正规表达式 替换任意大小字符串上的( preg_replace_* ) 。 PHP 5.2.1引入了一个 php.ini 配置指令,名为 pcre.backtrack_limit 。 这个配置参数是限制匹配的字符串长度。 为什么这被引入我不知道。 默认值被选择为 100,000. 为什么这么低的值? 再一次,不知道。

一个 Bug 针对 PHP 5.2.1引发的就是这两年后,它仍然打开着目前 。

什么是关于这里是,超过限制时,则替换horrifying只是 无提示失败。 至少如果记录一条错误已经被抬高和你会有一些指示发生了什么事情,为什么以及采取何种措施来改变来解决它。 但没有。

所以我有一个 70 k的HTML文件来转换为 PDF 。 它需要以下 php.ini 设置:

  • pcre.backtrack_limit = 2000000 ; # 可能比我需要的更多,但这可以
  • memory_limit = 1024 M ;# 是,;和
  • max_execution_time = 600 ;# 是, 10分钟。

现在精明的读者可能已经注意到我的HTML文件小于 100 k 。 我之所以能猜测这个问题的惟一原因是,html2pdf在处理过程中将一个转化为 xhtml 。 也许这让我超过了( 虽然几乎 50%膨胀似乎古怪) 。 不管情况如何,上面的工作都是。

现在,html2pdf是一个资源。 我的70 k 文件大约需要 5分钟,至少需要 500 -600M的内存才能创建 35页PDF文件。 没有足够快的( 到目前为止) 用于实时下载,内存使用率将内存使用率设置为 1000 -to-1 ( 600 k 文件的RAM的70 m )的顺序,这真是荒谬。

不幸的是,这是我最好的选择。

你为什么不尝试 mPDF版本 2.0? 我使用它来创建PDF文档。 它工作正常。

同时mPDF在 5.7版本,与 html2ps/html2pdf相比,它是主动维护

但是记住,文档实际上很难处理。 例如请看下面的页面: http://mpdf1.com/manual/index.php?tid=151

html到pdf,周围非常基本任务可以做与此库,但更复杂的任务会带一些时间阅读和"理解"文件。

如果你的意图是从PHP创建一个 PDF,pdflib将帮助你。

否则,如果你想通过 PHP,你会发现一小麻烦还刷新中一个HTML页面转换为 PDF 。

我知道的选项是:

DOMPDF: 封装HTML并构建PDF的PHP类。 工作正常,可以定制的( 如果你知道 PHP ),基于 pdflib,如果我记得它甚至可以接受一些 CSS 。 当HTML是大的或者非常复杂时,news: 变慢。

HTML2PS web: 与DOMPDF相同,但它在. ps ( ghostscript ) 中首先转换,然后以任何你需要的格式进行转换。 对于我来说,这一点比dompdf好,但是有同样的速度问题。 它对CSS有更好的支持。

这两个是PHP类,但是如果你可以在服务器上安装一些软件,并通过 passthru() 或者 system() 来访问它,那么你也可以看看这些:

wkhtmltopdf web: 基于 web kit包装的( safari,是快速和健壮的) 。 看起来最好的( 自动取款机) 是将html页面转换为pdf页面,只需要 2秒的3页xHTML文档。 是最近的项目,无论如何,google.code 页面经常更新。

htmldoc: 这个是一个坦克,它经常崩溃。 这个项目在 2007中似乎已经消失了,但是无论如何,如果你不需要CSS兼容性,这可能对你有用。

tcpdf - 这是一个增强和维护的clsid版本。 tpdf的主要特性,它还具有更好的执行时间,输出很好。 有关使用两个最流行的PDF生成类的详细教程: TCPDF和 FPDF,请跟随这个链接

查看这些贴子。

  1. 将PHP文件中的HTML转换为PDF文件
  2. ,mpdf或者fpdf中的最佳pdf生成器
  3. 在PHP中将一个html导出为 PDF
  4. 用PHP变量将HTML写入PDF文件
  5. 如何使用php将html转换为 pdf
  6. 用于将html导出为pdf格式的工具

就是要突出这个线程,我试过DOMPDF和它运行完美。 我已经使用 DIV 和其他块级元素来定位所有东西,尽量保持它的严格 CSS 2.1和它玩过veru取得好。

好消息Snappy

在一个网址或者一个 html page,爽快是一个非常容易开放源代码使用这个图书馆,能使缩略图,快照或者 PDF generation.库 然后- 它使用优良的 webkit-based wkhtmltopdf

享受^_ ^ !

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

...