有人知道如何获取使用mPDF库的PDF文档生成的页面数吗?
我在使用 EYiiPdf(Yii 上的 mPDF 包装器)时正在寻找相同的功能,以下内容就像一个魅力:
$mPDF->setFooter('{PAGENO} / {nb}');
我检查了mPDF的来源,并在mpdf.php:1656(版本5.4)中找到了这个:
function AliasNbPages($alias='{nb}') {
//Define an alias for total number of pages
$this->aliasNbPg=$alias;
}
希望对您有所帮助!
你可以
使用{nbpg},比如
<div align="center"><b>{PAGENO} / {nbpg}</b></div>
如果您尝试返回页数,以便可以将其保存到数据库或 mpdf 之外的其他操作中,则很容易以这种方式拉取它。
编写内容后:
$mpdf->WriteHTML($html);
$page_count = $mpdf -> page;
$mpdf->Output();
将其添加到主 mPDF 类中:
function getPageCount() {
return count($this->pages);
}
然后添加一个HTML解析器这样的字符串:
$html = str_replace('{PAGECNT}', $this->getPageCount(), $html);
完成这些操作后,您可以直接在解析的 HTML 中插入 {PAGECNT} 以获得结果。这很有用,因为您需要指示一个页面:
- 替换别名 {nb} 和 {nbpg} 表示总数
-
{页} 表示当前页码
更新
请注意,此答案指的是 mdf 库 v4,在撰写本文时是最新版本。
按@aiao划分的最小工作示例
<?php
$pagenumber= '<!--mpdf Page {PAGENO} of {nbpg}mpdf--> $mpdf->WriteHTML($pagenumber);
$mpdf->Output();
?>
<?php
$pagenumber= '<!--mpdf Page {PAGENO} of {nbpg}mpdf--> $mpdf->WriteHTML($pagenumber);
$mpdf->Output();
?>
注意以下行:
preg_replace('/'{DATE's+(.*?)'}/e',"date('''1')",$hd);
在 mpdf 中.php函数 Footer()它可能会导致您的"{PAGENO}/{nb}"不显示。只需将其注释掉或使用strpos('{DATE' > -1)
来检查它是否可用。此外,您可能需要添加:
$mpdf->ignore_invalid_utf8 = true;
此外,如果您不想要页脚行:
$mpdf->defaultfooterline = false;
经过这些更改,分页终于对我有用了。