2

我最近遇到了 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.
4

2 回答 2

0

最近,我遇到了同样的问题mpdf。一张大桌子太慢了。就我而言,行数为 5000,执行时间超过 60 秒。对于网页,它真的很慢。所以,我开始寻找另一种解决方案,我找到了PHP WkHtmlToPdf作曲家包。它需要安装wkhtmltopdf并可选地安装wkhtmltoimage到系统中。但是,它比mpdf因为它不是 PHP 库并且建立在 Perl 上要快得多,我真的推荐它来生成大型 pdf。

PS。我知道我的回答无助于解决问题mpdf,但我只是分享了我的经验。我希望,它会帮助某人。

于 2020-11-29T10:15:42.830 回答
0

空白页或某些部分丢失永久链接

如果您将大量代码作为 CSS 样式或主要 HTML 代码传递给 WriteHTML(),您可能会得到一个空白页面输出,或者该部分代码丢失。

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,000

ini_set("pcre.backtrack_limit", "1000000");

于 2018-02-09T17:54:31.613 回答