我一直在尝试生成多个PDF。我该怎么做?
我试图使用for循环,但是我不知道如何继续。
for ($i = 0; $i < 10; $i++) {
$mpdf = new mPDF();
$mpdf->WriteHTML('<p>Only test$i</p>');
$mpdf->Output("Document_name$i.pdf", "D");
}
exit;
我希望此脚本将下载10个文档。
答案 0 :(得分:3)
尽管从技术上讲,HTTP在 上通过MIME-Multipart支持多个文件,但浏览器支持为mostly non-existent。
可能的做法是将每个生成的PDF添加到ZIP存档中,然后将ZIP文件作为响应:
$zip = new ZipArchive();
$zipFile = tempnam('/tmp', 'zip');
$zip->open($zipFile, ZipArchive::CREATE);
for ($i = 0; $i < 10; $i++) {
$mpdf = new mPDF();
$mpdf->WriteHTML('<p>Only test$i</p>');
$pdfData = $mpdf->Output("", \Mpdf\Output\Destination::STRING_RETURN);
$zip->addFromString("Document_name{$i}.pdf", $pdfData);
}
$zip->close();
header("Content-type: application/zip");
header('Content-Disposition: attachment; filename=Documents.zip');
readfile($zipFile);
unlink($zipFile);
exit;