问题描述
我目前正在尝试创建一个约 230 页的 pdf 文档。
PHP 版本:7.0.33 mpdf 版本:8.0.8
1 个页面看起来像这个 fiddle 中的页面(仅不同的数据):https://jsfiddle.net/hw90L2kd/ 这是我的 PHP 代码:
setlocale(LC_TIME,"de_DE");
require_once "../../vendor/autoload.PHP";
require_once("../../020classes/Arrays.PHP");
require_once("../../020classes/c_DB.PHP");
$sql = "SELECT Verr_Rechnungen.*,pat.ZArt,pat.E_Nachrichten,adr.*
FROM Verr_Rechnungen
LEFT JOIN pat ON (Verr_Rechnungen.AdrNr=pat.AdrNrPat)
LEFT JOIN adr ON (Verr_Rechnungen.AdrNr=adr.AdrNr)
WHERE Rechnungsnummer >=".$_GET["rechnungsnummerstart"]." AND Rechnungsnummer <=".$_GET["rechnungsnummerende"]."
ORDER BY adr.FName,adr.VName,Land";
$rs = $db->prepare($sql);
$rs->execute(); //Im getting results from this
$mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/temp']);
while($row = $rs->fetch())
{
ob_start();
$mpdf->AddPage();
//here goes html page,which is generated with some PHP code
$stylesheet = file_get_contents('rechnungRGDruck.css'); //same css as in the fiddle
$mpdf->WriteHTML($stylesheet,1);
$html = ob_get_contents();
//send the captured HTML from the output buffer to the mPDF class for processing
$mpdf->WriteHTML($html,2);
ob_clean();
}
$mpdf->Output("rechnungen.pdf","D");
我有大约 230 个客户,我每个客户都在此 pdf 中创建了一个页面,但在尝试一次创建所有页面时,我总是收到 500 - 内部服务器错误。如果我将查询限制为 150,则没问题。 我已经限制了 PHP 执行时间并将内存大小增加到 512M,尝试一下是否是问题的原因 - 没有成功。 即使我使用
error_reporting(-1); // reports all errors
ini_set("display_errors","1"); // shows all errors
ini_set("log_errors",1);
ini_set("error_log","PHP-error.log");
在文件的顶部,我根本无法生成任何错误,没有日志,什么也没有。只有 500 - 内部服务器错误。 由于这篇文章 php return 500 error but no error log 上的信息,我在 mpdf 的所有文件中搜索了 @ 符号,并将其替换为任何内容(只是为了尝试之后是否出现任何错误),但没有再次出现。
有人知道为什么会这样吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)