使用mpdf生成多个pdf文件但只生成一个
Generating mutliple pdf files using mpdf but only one is generated
我想用mpdf库生成多个文件,可惜只生成了一个文件,没有生成多个,请问怎么办。感谢您的关注。
for ($i=1; $i<count($sheetData); $i++)
{
$name = $sheetData[$i][0];
$fName = $sheetData[$i][1];
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => [290, 236]]);
$stylesheet = file_get_contents('../assets/css/style.css');
$mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
ob_end_clean();
$html = $mpdf->WriteHTML('<p>My Layout is there</p>');
$filename = time().'.pdf';
$mpdf->Output($filename ,'D');
unset($mpdf);
}
你需要保存它们。你不能用“D”或“I”一次输出它们
$mpdf->Output($filename ,'F');
如果需要一个文件并添加 Page() https://mpdf.github.io/reference/mpdf-functions/addpage.html
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => [290, 236]]);
for ($i = 1; $i < count($sheetData); $i++) {
$name = $sheetData[$i][0];
$fName = $sheetData[$i][1];
$stylesheet = file_get_contents('../assets/css/style.css');
if ($i > 1) {
$mpdf->AddPage();
}
$mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML('<p>My Layout is there</p>');
}
$filename = 'my.pdf';
$mpdf->Output($filename, 'F');
你也可以先创建html
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => [290, 236]]);
$html = '';
for ($i = 1; $i < count($sheetData); $i++) {
$name = $sheetData[$i][0];
$fName = $sheetData[$i][1];
$html .= '<p>My Layout is there</p>';
}
$stylesheet = file_get_contents('../assets/css/style.css');
$mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html);
$filename = 'my.pdf';
$mpdf->Output($filename, 'D');
您想将多个 PDF 文件发送到客户端还是将它们保存在磁盘上?
您正在使用 time()
作为伪随机文件名,但是如果 PDF 文件的生成速度足够快并且在同一秒内发生,您将覆盖之前生成的文件,至少如果您选择将生成的文件存储在磁盘上。你可能想使用 "generated_$i"
之类的东西而不是 time()
.
我想用mpdf库生成多个文件,可惜只生成了一个文件,没有生成多个,请问怎么办。感谢您的关注。
for ($i=1; $i<count($sheetData); $i++)
{
$name = $sheetData[$i][0];
$fName = $sheetData[$i][1];
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => [290, 236]]);
$stylesheet = file_get_contents('../assets/css/style.css');
$mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
ob_end_clean();
$html = $mpdf->WriteHTML('<p>My Layout is there</p>');
$filename = time().'.pdf';
$mpdf->Output($filename ,'D');
unset($mpdf);
}
你需要保存它们。你不能用“D”或“I”一次输出它们
$mpdf->Output($filename ,'F');
如果需要一个文件并添加 Page() https://mpdf.github.io/reference/mpdf-functions/addpage.html
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => [290, 236]]);
for ($i = 1; $i < count($sheetData); $i++) {
$name = $sheetData[$i][0];
$fName = $sheetData[$i][1];
$stylesheet = file_get_contents('../assets/css/style.css');
if ($i > 1) {
$mpdf->AddPage();
}
$mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML('<p>My Layout is there</p>');
}
$filename = 'my.pdf';
$mpdf->Output($filename, 'F');
你也可以先创建html
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => [290, 236]]);
$html = '';
for ($i = 1; $i < count($sheetData); $i++) {
$name = $sheetData[$i][0];
$fName = $sheetData[$i][1];
$html .= '<p>My Layout is there</p>';
}
$stylesheet = file_get_contents('../assets/css/style.css');
$mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html);
$filename = 'my.pdf';
$mpdf->Output($filename, 'D');
您想将多个 PDF 文件发送到客户端还是将它们保存在磁盘上?
您正在使用 time()
作为伪随机文件名,但是如果 PDF 文件的生成速度足够快并且在同一秒内发生,您将覆盖之前生成的文件,至少如果您选择将生成的文件存储在磁盘上。你可能想使用 "generated_$i"
之类的东西而不是 time()
.