当我不想在服务器上下载文件时,无法使用 mPDF 生成多个 PDF
Unable to generate multiple PDFs using mPDF when I do not want to download files on server
我正在使用 mPDF
循环生成多个 PDF。以下是我的代码行:
for($i=0;$i<=3;$i++)
{
$mpdf = new mPDF();
$stylesheet = file_get_contents('style.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML('My html');
$mpdf->SetDisplayMode('fullpage');
$pdfname="Invoice_No.$i".".pdf";
$mpdf->Output($pdfname, "I");
}
当将参数 I
更改为 F
时,会在服务器上生成多个 PDF。但是,当使用 I
作为参数时,只会生成第一个 PDF。有什么方法可以生成多个 PDF 而不必将它们保存在服务器中?
注意:即使使用参数 D
也无济于事
TL;DR 不,在一个请求中,没有。
I
和 D
输出模式生成文件,将输出从服务器发送到浏览器(分别为内联和强制下载)并结束执行 - 这样就不会发送更多数据这会损坏发送的 PDF 文件。
您必须为每个文件执行多个 HTTP 请求。
或者,您可以将 PDF 保存在内存中,稍后将它们打包成 ZIP 文件并发送 ZIP 文件。
我正在使用 mPDF
循环生成多个 PDF。以下是我的代码行:
for($i=0;$i<=3;$i++)
{
$mpdf = new mPDF();
$stylesheet = file_get_contents('style.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML('My html');
$mpdf->SetDisplayMode('fullpage');
$pdfname="Invoice_No.$i".".pdf";
$mpdf->Output($pdfname, "I");
}
当将参数 I
更改为 F
时,会在服务器上生成多个 PDF。但是,当使用 I
作为参数时,只会生成第一个 PDF。有什么方法可以生成多个 PDF 而不必将它们保存在服务器中?
注意:即使使用参数 D
也无济于事
TL;DR 不,在一个请求中,没有。
I
和 D
输出模式生成文件,将输出从服务器发送到浏览器(分别为内联和强制下载)并结束执行 - 这样就不会发送更多数据这会损坏发送的 PDF 文件。
您必须为每个文件执行多个 HTTP 请求。
或者,您可以将 PDF 保存在内存中,稍后将它们打包成 ZIP 文件并发送 ZIP 文件。