创建更大的 pdf 时,mpdf 内存太低

Posted

技术标签:

【中文标题】创建更大的 pdf 时,mpdf 内存太低【英文标题】:mpdf memory gets too low when creating bigger pdfs 【发布时间】:2017-01-02 05:55:20 【问题描述】:

在处理大型(大约 11000 条记录)数据集时,如何防止内存不足?

问题

在将mPDF 与 php 一起使用时,我正在尝试从大型数据集(大约 11000 条记录)创建 PDF 文件,这会导致以下错误(内存值波动):

致命错误:24132行projectfolder\mpdf\mpdf.php内存不足(分配1197211648)(试图分配44字节)

我尝试了什么

它在较小的数据集上运行良好,我尝试搜索 *** 文章和其他谷歌文章,结果我对我的 php.ini 文件进行了以下更改:

memory_limit=-1
max_execution_time=0
post_max_size=0

我的笔记本电脑规格(运行脚本的位置):

8GB 内存 i7 处理器 64 位操作系统 XAMPP

【问题讨论】:

调整了格式和语言以阐明问题的意图。通常最好将问题放在首位,然后是问题和尝试。底部的硬件规格很好,但如果您希望包含这些信息,则可以提供更多信息(可以通过 XAMPP 猜测 linux 的一些风味)关于正在运行的 64bit OS/版本/等。跨度> 【参考方案1】:

遗憾的是,mPDF 没有针对大型数据集进行优化,从而导致 html 变大。

如果可以的话,我建议创建多个较小的 PDF 文档,然后使用 ghostscript 等外部工具将它们连接起来。

【讨论】:

【参考方案2】:

调用自动加载后使用这个:

require_once APPPATH.'libraries/Mpdf/autoload.php';
ini_set("memory_limit","-1");

【讨论】:

以上是关于创建更大的 pdf 时,mpdf 内存太低的主要内容,如果未能解决你的问题,请参考以下文章

为啥我可以使用 POSIX 创建比 /dev/shm 上安装的大小更大的共享内存?

将 innodb_tmpdir 变量更改为更大的分区时,Mysql 抛出内存不足

CHCSVWriter用于写入更大的CSV文件的内存使用情况

如何使用 Python 和 Pandas 创建比 RAM 更大的 csv 文件

使用 mPDF 从 HTML 表单创建 PDF

为啥堆栈内存大小如此有限?