我最近遇到了MPDF的问题。当我试图显示1000行的大表时,处理时间超过10分钟且服务器崩溃。我必须在结束时停止服务器,因为它不处理我的表。我在他们的论坛上看过这个解决方案。我使用了提出的解决方案,但我仍然遇到同样的问题。有人遇到过这个吗?我需要一些帮助。谢谢
这是建议的解决方案:
http://mpdf.bpm1.com/forum/comments.php?DiscussionID=270
Reduced Memory Usage printing Tables
------------------------------------
mPDF uses a lot of memory when processing large tables. Parts of the script have been rewritten to
reduce memory consumption when writing tables which use collapsed borders (10-25% saving).
Memory usage can be reduced further by setting a configurable variable:
$this->packTableData = true; // default=false
but note that this causes a significant increase in processing time.
答案 0 :(得分:0)
空白页面或某些部分缺失常规链接
如果将大量代码传递给WriteHTML(),无论是CSS样式还是主HTML代码,都可能会出现空白页输出或缺少该段代码。
PHP函数preg_replace()具有将解析的最大字符串长度(默认情况下,这通常约为100000个字符)。在此之上,PHP以静默方式返回空值。如此长的代码串将被替换为什么!
如果您的系统允许,您可以在运行时增加pcre.backtrack_limit的值;或者,将HTML分成块并将它们一次传递给WriteHTML()
pcre.backtrack_limit可以从PHP> = 5.2.0配置
默认值从PHP> = 5.3.7
增加到100,000到1,000,000ini_set(" pcre.backtrack_limit"," 1000000");
答案 1 :(得分:0)
最近,我在mpdf
上遇到了同样的问题。大桌子太慢了。在我的情况下,行数为5000,执行时间超过60秒。对于网页,这确实很慢。因此,我开始寻找另一种解决方案,并发现了PHP WkHtmlToPdf作曲家软件包。它需要将wkhtmltopdf
和可选的wkhtmltoimage
安装到系统中。但是,它比mpdf
快得多,因为它不是PHP库,而是基于Perl构建的,我真的建议使用它来生成大型pdf。
PS。我知道我的答案无助于解决mpdf
的问题,但是我只是分享了自己的经验。我希望这会对某人有所帮助。