13

我第一次使用 mpdf 库,一切正常。我编写了一个脚本来创建包含 274 行表的 pdf 文件。当我运行脚本时,我得到 php 内存错误。我尝试了不同的场景,但我得到了相同的内存错误。请帮我解决这个错误。我在下面列出了不同的情况及其结果。

php.ini = memory_limit = 256M

脚本 = ini_set('memory_limit', '25M');

Result:
memory_get_usage() = 12.75 mb
memory_get_peak_usage() = 12.75 mb
Fatal error: Allowed memory size of 26214400 bytes exhausted
(tried to allocate 261904 bytes)
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14268

php.ini = memory_limit = 256M

脚本 = ini_set('memory_limit', '-1');

Result:
memory_get_usage() = 12.75 mb
memory_get_peak_usage() = 12.75 mb
Fatal error: Out of memory (allocated 1898971136)
(tried to allocate 261904 bytes) 
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14265
4

4 回答 4

4

可以使用多个选项来减少表内存使用量。官方文档在这里

于 2013-08-07T08:40:38.247 回答
2

mPDF 在服务器上使用大量内存。如果您收到超出内存限制的错误消息,请尝试以下操作:

在非常长的文档中以小块处理 HTML 代码比在一个大的 HTML 字符串中使用 ini_set("memory_limit","128M") 或在脚本顶部使用类似来分配更多内存生成更小的 mpdf 更有效.php 文件。

ini_set("memory_limit","128M"); $mpdf = 新 \Mpdf\Mpdf();

它工作!

更多细节:https ://mpdf.github.io/troubleshooting/memory-problems.html

于 2018-06-15T02:25:13.533 回答
1

您是否尝试查看phpinfo()输出以查看您设置的 memory_limit 值是否正在更改?尝试将该函数放在index.php文件的顶部,看看ini_set('memory_limit', '256M');它是否生效。

问候!

于 2015-08-08T03:51:34.170 回答
0

我发现不同步(</table>)标签会导致内存问题(和速度);清理进入 mPDF 的 HTML 解决了它。

于 2014-12-09T23:41:56.113 回答