关于PHP中HTML表格转PDF:PHP中HTML表格转PDF-DOMPDF和html2ps / pdf均不起作用

HTML tables to PDF in PHP - neither DOMPDF nor html2ps/pdf are working

现在最长的时间是我一直试图将包含大表的HTML页面转换为PHP。这些使用CSS设置样式,可以长达几页。

我首先尝试了DOMPDF。效果很好,直到文档超过一页为止。我找到的所有修复程序均无效。要么出错,要么将甚至部分位于第二页的元素混入到第1页的内容中。我已经尝试了最新版本和今天签出的SVN副本。

我还尝试了html2ps / pdf,即使该目录是完全可写的,它也会向我写入"缓存被拒绝"错误。系统要求测试脚本通过。服务器正在IIS下运行PHP 5(不是我的选择,呵呵)。

可以说服其中任何一个工作,还是有一个图书馆可以工作?

演示/测试脚本中的错误:

Warning: file_put_contents(C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/7d888258e9745b3716532ea81342daaf.css.compiled) [function.file-put-contents]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\JM\pdf\html2ps\css.cache.class.php on line 33

Warning: fopen(C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/unicode.lb.classes.dat) [function.fopen]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\JM\pdf\html2ps\inline.content.builder.php on line 991

Warning: flock() expects parameter 1 to be resource, boolean given in C:\Inetpub\wwwroot\JM\pdf\html2ps\inline.content.builder.php on line 992

Warning: fwrite(): supplied argument is not a valid stream resource in C:\Inetpub\wwwroot\JM\pdf\html2ps\inline.content.builder.php on line 1011(此错误重复数千次)


Warning: fopen(C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/times.z) [function.fopen]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\JM\pdf\html2ps\pdf.fpdf.makefont.php on line 318

Can't write to file C:\Inetpub\wwwroot\JM\pdf\html2ps\cache/times.z


我个人建议使用命令行应用程序,而不要使用任何PHP库。

原因:

  • PHP库需要更多的时间和内存(缓存)来进行转换。

  • 他们只需要格式正确的HTML页面,否则会引发错误或警告。

  • 不支持外部样式表。

  • 命令行工具:

    如果您在Linux服务器上运行脚本,则建议使用命令行工具。

    原因:

  • 与PHP库相比,它们非常快。

  • 支持CSS。

  • 接受格式不正确的HTML。

  • 使用哪个命令行工具?

  • wkhtmltopdf
  • htmltopdf
  • html2pdf
  • 有关更多信息,请参阅使用PHP将HTML转换为PDF(而非PDF转换为HTML)。


    在IIS下讨论了html2pdf的类似问题。

    解决方案很简单,但很奇怪。如果这对您没有帮助,则完整的错误消息和/或少量代码将帮助我为您提供帮助。