如何在PHP的mPDF中启用自动分页并触发setPageNo函数?
解决mPDF动态文本自动分页与页脚页码问题
首先,mPDF默认就支持自动分页,而且内置了页码相关变量,完全不需要手动调用setPageNo()来维护页码。你的现有代码存在两个问题:一是函数内的$mpdf未传入导致变量未定义,二是手动维护页码属于重复造轮子,mPDF本身就能处理这类需求。
修正后的实现代码
<?php // 初始化mPDF实例(若未初始化) $mpdf = new \Mpdf\Mpdf(); // 设置全局页脚,使用mPDF内置页码变量 // {PAGENO} = 当前页码,{nb} = 总页数 $mpdf->SetFooter('Page: {PAGENO}'); // 遍历动态文本,自动处理分页逻辑 foreach($arr as $x){ $mpdf->WriteHTML('<div style="text-align:center;">'.$x.'</div>'); } // 输出或保存PDF文件 $mpdf->Output(); ?>
关键说明
- 自动分页:mPDF默认会在内容超出当前页面范围时自动分页,无论文本是长段落还是单行内容,都无需额外配置。如果需要强制分页,可在HTML中插入
<pagebreak />标签。 - 内置页码变量:
{PAGENO}会自动同步当前页码,{nb}会获取总页数,mPDF会在分页时自动更新这些变量的值,完全不用手动计数。 - 若需要自定义页脚样式,可直接在
SetFooter()中传入HTML代码,示例:
$mpdf->SetFooter('<div style="text-align:center; font-size:10px;">Page {PAGENO} of {nb}</div>');
内容的提问来源于stack exchange,提问作者user20004306
相关产品推荐
相关产品推荐

