PHP中的HTML表格到PDF - DOMPDF和html2ps / pdf都不起作用

时间:2009-08-14 20:55:23

标签: php html pdf-generation dompdf

现在,我一直在尝试将包含大表的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

2 个答案:

答案 0 :(得分:0)

与IIS下的html2pdf类似的问题已经讨论过here

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

答案 1 :(得分:0)

我个人推荐使用命令行应用程序而不是任何PHP库。

原因:

  1. PHP库需要更多时间和内存(缓存)才能进行转换。

  2. 他们只需要格式良好的HTML页面,否则会抛出错误或警告。

  3. 不支持外部样式表。

  4. 命令行工具:

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

    原因:

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

    2. 支持CSS。

    3. 接受格式不正确的HTML。

    4. 使用哪个命令行工具?

      1. wkhtmltopdf
      2. htmltopdf
      3. HTML2PDF
      4. 有关更多信息,请参阅Converting HTML to PDF (not PDF to HTML) using PHP