现在,我一直在尝试将包含大表的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
答案 0 :(得分:0)
与IIS下的html2pdf类似的问题已经讨论过here。
解决方案很简单,但很奇怪。如果这对您没有帮助,完整的错误消息和/或一些代码将帮助我帮助您。
答案 1 :(得分:0)
我个人推荐使用命令行应用程序而不是任何PHP库。
原因:
PHP库需要更多时间和内存(缓存)才能进行转换。
他们只需要格式良好的HTML页面,否则会抛出错误或警告。
不支持外部样式表。
命令行工具:
如果您在Linux服务器上运行脚本,那么我建议使用命令行工具。
原因:
与PHP库相比,它们非常快。
支持CSS。
接受格式不正确的HTML。
使用哪个命令行工具?
有关更多信息,请参阅Converting HTML to PDF (not PDF to HTML) using PHP。