我需要生成270个PDF并使用DOMPDF。问题是生成20 PDF后我得到一个内部服务器错误。我也将时间限制设置为零。 什么是生成许多pdf的最佳方法?
答案 0 :(得分:2)
要使用Dompdf生成大量文档,我会为每个渲染生成一个外部进程。这可以更快,更少资源(即内存使用)[ref]。
我过去用于类似任务的步骤是:
所以第2步将是这样的:
foreach ($htmldocs as $htmldoc) {
exec("php dompdf.php $htmldoc");
}
dompdf.php将是一个实例化dompdf并呈现HTML文件的脚本。
$dompdf = new Dompdf();
$dompdf->load_html_file($argv[1]);
$dompdf->render();
$filename = basename($argv[1], '.html').'.pdf';
file_put_contents($filename, $dompdf->output());
奖金信息:I've done something similar当我实际创建一个带有易于定义的页面的大文档时。作为该过程的第四步,我使用pdftk将渲染的PDF文档合并为一个PDF。
$exec_cmd = 'pdftk';
for ($html_doc = 1; $html_doc <= count($html_docs); $html_doc++) {
$exec_cmd .= ' ' . TEMP_DIR . '/' . $filenames[$html_doc] . '.pdf';
}
$exec_cmd .= ' cat output ' . FILESTORE_DIR . '/' . $packet_gen_info['packet_code'] . '.pdf';
exec($exec_cmd, $pdftk_output, $pdftk_return_code);
答案 1 :(得分:1)
你应该看看wkhtmltopdf。它是一个很棒的工具,我已经用它来生成数以千计的PDF文件,没有任何问题。
语法很简单:
wkhtmltopdf http://google.com google.pdf
这将从谷歌主页制作pdf。