在 div 上的某些类与 mpdf 匹配后添加分页符

Posted

技术标签:

【中文标题】在 div 上的某些类与 mpdf 匹配后添加分页符【英文标题】:Add page break after match of certain class on div with mpdf 【发布时间】:2014-01-21 00:25:33 【问题描述】:

我正在使用 mPDF 库将报告(html 格式)转换为 pdf,但是将所有页面合二为一。我想在某个之后添加一个分页符但是我没有成功。

html

 <div class='text my_form' style='margin:0px 0 0 0; padding:0px 0 0 0;  border-style:dotted; border-color:white;'>

我将它作为 $html 传递给 php

PHP

 require_once ("./libraries/MPDF57/mpdf.php");

    $mpdf=new mPDF("", "Letter", "", "", 10, 10);

我想在它找到上面显示的div之后添加一个分页符

 preg_match_all("/((\<div\s)(class='text\smy_form'[\s\w\s]*border-color:white)(.+?)(\>)/", $html, $matches, PREG_SET_ORDER);

    foreach($matches as $value) 
       $html= $mpdf->AddPage();
     

     $mpdf->WriteHTML($html);

     $filename = "documentx.pdf";

    $mpdf->Output($fileName, 'F');

但是,不起作用,请帮我走正确的路:)

【问题讨论】:

【参考方案1】:

我在关闭 foreach 标记之前使用此代码:$html .= "&amp;lt;pagebreak /&amp;gt;";

foreach($matches as $value) 
   $html .= "<pagebreak />";
 

【讨论】:

【参考方案2】:

我没有使用 AddPage 而是使用 css 添加分页符,使用 page-break-after:always 和最后一个 div,page-break-after:avoid 已经成功。也许这样的事情会起作用:

$len = count($matches);
$i = 1;
foreach($matches as $value) 
    if ($i < $len) 
        $html .= "<div style='page-break-after:always'>" . $html . "</div>";
     else 
        $html .= "<div style='page-break-after:avoid'>" . $html . "</div>";
    
    $i++;

$mpdf->WriteHTML($html);

【讨论】:

当我使用这个我的 $mpdf->SetHTMLFooter($footer);没有打印...

以上是关于在 div 上的某些类与 mpdf 匹配后添加分页符的主要内容,如果未能解决你的问题,请参考以下文章

MPDF 无输出(空白页)

如何在 Angular 4 中为表格添加分页?

ZPL 代码 128 与 mPDF 代码 128 输出不匹配

mpdf - 第一页上的文本延伸到第二页,与页眉重叠

mPDF - 仅在奇数页上显示背景

最后打印页的页脚 MPDF