下载生成的PDF有多页内存问题

我正在尝试使用tcpdf库在同一PDF中生成批量发票(用于打印)。 问题是,如果有太多(超过50页)生成服务器将崩溃并出现此错误。</ p>

致命错误:允许的内存大小为33554432字节耗尽(尝试分配72 第16680行/home/user/public_html/lib/tcpdf/tcpdf.php中的字节)</ p>

所以我可以看到我帐户的最大内存限制是335544320字节。
我试过 使用 ini_set('memory_limit',' - 1'); </ code>但它无法传递335544320个字节。 在我的localhost工作正常,因为我有所有的memory_limit可用。</ p>

所以问题是如何解决这个问题才能工作。 查看或下载包含所有发票的PDF。 我想如果由于内存问题而无法完成此操作,将每个PDF保存在一个文件夹中,然后压缩并下载该文件夹。</ p>
</ div>

展开原文

原文

I am trying to generate bulk invoices (for printing) in the same PDF by using tcpdf library. The problem is that if there are too many (over 50 pages ) to generate the server will crash with this error.

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 72 bytes) in /home/user/public_html/lib/tcpdf/tcpdf.php on line 16680

So i can see that the max memory limit on my account is 335544320 bytes. I tried using ini_set('memory_limit', '-1'); but it cannot pass 335544320 bytes. On my localhost is working OK because i have all the memory_limit available.

So the question is how can fix this in order to work. To see or download the PDF containing all the invoices. I was thinking if this cannot be done because of the memory problem, to save each PDF in a folder and then zip and download the folder.

doufu5747
doufu5747 虽然它可以打开每个pdf并单独打印,但它并不理想。
接近 6 年之前 回复
dongqieli4164
dongqieli4164 您回答了自己的问题-如果您可以通过将数据转储到本地文件存储上的单个文件来刷新内存,然后使用ZipArchive将它们放在一起,则可以轻松实现。
接近 6 年之前 回复

1个回答



TCPDF的构造函数有 $ diskcache </ code>参数:</ p>

   / ** 

  • @param $ diskcache(boolean)如果TRUE通过缓存文件系统上的临时数据(较慢)来减少RAM内存使用量。
  • /
    npublic function __construct($ orientation ='P',$ unit =' mm',$ format ='A4',$ unicode = true,$ encoding ='UTF-8',$ diskcache = false,$ pdfa = false)
    </ code> </ pre>

    另一种选择是将单独的页面/发票创建为单独的pdf文件,然后使用您可用的任何解决方案合并它们。 请参阅使用php合并pdf文件。</ p>
    </ div>

展开原文

原文

TCPDF's contructor has $diskcache parameter:

/**
 * @param $diskcache (boolean) If TRUE reduce the RAM memory usage by caching temporary data on filesystem (slower).
*/
public function __construct($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding='UTF-8', $diskcache=false, $pdfa=false)

Another option is to create individual pages/invoices as separate pdf files, and then merge them using any solution you have available. See Merge pdf files with php.

duanliang1898
duanliang1898 即使我启用了diskcache,我似乎也得到了同样的错误
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐