在 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 .= "&lt;pagebreak /&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 匹配后添加分页符的主要内容,如果未能解决你的问题,请参考以下文章