我正在尝试使用tcpdf库在同一PDF中生成批量发票(用于打印)。问题是,如果有太多(超过50页)生成服务器将崩溃与此错误。
致命错误:第16680行/home/user/public_html/lib/tcpdf/tcpdf.php中允许的内存大小为33554432字节(尝试分配72个字节)
所以我可以看到我帐户的最大内存限制为335544320字节。
我尝试使用ini_set('memory_limit', '-1');
,但无法传递335544320个字节。在我的localhost工作正常,因为我有所有memory_limit可用。
所以问题是如何解决这个问题才能发挥作用。查看或下载包含所有发票的PDF。我在想是否由于内存问题而无法完成,将每个PDF保存在一个文件夹中,然后压缩并下载该文件夹。
答案 0 :(得分:0)
TCPDF的构造函数有$diskcache
参数:
/**
* @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)
另一种选择是将单独的页面/发票创建为单独的pdf文件,然后使用您可用的任何解决方案将它们合并。请参阅Merge pdf files with php。