问题描述
我正在使用 mpdf lib 生成多个文件,我不想单独生成所有文件,我想生成一个以页面分隔的 pdf 格式的文件。
我添加了 addpage 方法来生成单个文件,但出现问题,我的第一页按预期打印,但第二页是空白的。我知道我需要取消 dom 设置,因为这个库可以为多个文件生成新实例。
然后我决定在循环中取消设置 dom,当我的循环迭代完成时,它说 $mpdf var 不存在。有没有其他方法可以取消设置在单个文件上生成多个页面的 dom?
如果我在文件末尾添加 unset,只有第一页可以成功,但第二页会留空。
for ($i=1; $i<count($sheetData); $i++) {
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8','format' => [290,236]]);
$stylesheet = file_get_contents('style.css');
$mpdf->WriteHTML($stylesheet,\Mpdf\HTMLParserMode::HEADER_CSS);
$html = $mpdf->WriteHTML('Hello World');
$filename = $key.''.time().'.pdf';
$targetPath = 'challans/Multiple/'.$dirName.'/';
$mpdf->AddPage();
}
$mpdf->Output($targetPath.$filename,'F');
unset($mpdf);
解决方法
在循环外创建新实例,它就像一个魅力,也删除了 $mpdf->AddPage();方法,因为它会自动分配新页面。
喜欢
for ($i=1; $i<count($sheetData); $i++) {
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8','format' => [290,236]]);
}
到
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8',236]]);
for ($i=1; $i<count($sheetData); $i++) {
}
$mpdf->Output($targetPath.$filename,'F');
unset($mpdf);