如何通过mpdf库生成多个文档?

Luk*_*ejk 1 php mpdf

我一直在尝试生成多个 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;    
Run Code Online (Sandbox Code Playgroud)

我预计此脚本将下载 10 个文档。

cri*_*hoj 5

虽然 HTTP 在技术上确实通过 MIME-Multipart 在单个响应支持多个文件,但浏览器支持几乎不存在

一种可能的做法是将每个生成的 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;
Run Code Online (Sandbox Code Playgroud)