如果使用mPDF库的PDF文档有人知道如何获取生成页面的数量吗?
答案 0 :(得分:26)
在使用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;
}
希望它有所帮助!
答案 1 :(得分:13)
您可以使用 {nbpg} ,例如
<div align="center"><b>{PAGENO} / {nbpg}</b></div>
答案 2 :(得分:5)
答案可能在原始文件中有所体现:
http://mpdf1.com/manual/index.php?tid=314
替换别名 {nb} 和 {nbpg} ,总数为
当前页码为 {PAGENO}
答案 3 :(得分:3)
将其添加到主mPDF类:
function getPageCount() {
return count($this->pages);
}
然后添加一个html-parser这样的字符串:
$html = str_replace('{PAGECNT}', $this->getPageCount(), $html);
执行这些操作后,您可以直接在已解析的HTML中插入{PAGECNT}以获取结果。这是有用的,你需要指明一个页面:
答案 4 :(得分:3)
如果您尝试返回页面数以便将其保存到数据库或mpdf之外的其他操作中,则可以通过这种方式轻松实现。
撰写内容后:
$ mpdf-&GT;的WriteHTML($ HTML);
$ page_count = $ mpdf - &gt;页;
$ mpdf-&GT;输出();
答案 5 :(得分:0)
注意这一行:
preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$hd);
页脚()
这可能会导致您的“{PAGENO} / {nb}”无法显示。
只需将其注释掉或使用strpos('{DATE' > -1)
检查它是否可用。
您还可以添加:
$mpdf->ignore_invalid_utf8 = true;
并且如果你不想要页脚行:
$mpdf->defaultfooterline = false;
在这些改变之后,分页终于为我工作了。