【问题标题】:Want to generate multiple pdf in single file using mpdf想要使用 mpdf 在单个文件中生成多个 pdf
【发布时间】:2021-03-17 11:16:49
【问题描述】:

我正在使用 mpdf lib 生成多个文件,我不想单独生成所有文件,我想在一个分页分隔的 pdf 中生成文件。

我添加了 addpage 方法来生成单个文件,但有一个问题,我的第一页按预期打印,但第二页是空白的。我知道我需要取消设置 dom,因为这个库可以为多个文件生成新实例。

然后我决定取消设置循环中的 dom,当我的循环迭代完成时,它说 $mpdf var 不存在。有没有其他方法可以取消设置 dom 以在单个文件上生成多个页面?

如果我在文件末尾添加未设置,则只有第一页可以成功,但第二页留空。

 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);

【问题讨论】:

  • 如果您只想将新的 HTML 写入下一页,为什么在每次迭代中都创建新的 Mpdf 实例?
  • 你解决了我的问题,我把它放在循环之外,它就像一个魅力。谢谢老哥

标签: php loops mpdf multiple-processes


【解决方案1】:

在循环之外创建新实例,它就像一个魅力,也删除 $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', 'format' => [290, 236]]);
for ($i=1; $i<count($sheetData); $i++) {
}

$mpdf->Output($targetPath.$filename, 'F');
unset($mpdf);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多