如何在mPDF文档中获取页数?

时间:2012-04-23 12:31:26

标签: php mpdf

如果使用mPDF库的PDF文档有人知道如何获取生成页面的数量吗?

6 个答案:

答案 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);

mpdf.php函数中的

页脚() 这可能会导致您的“{PAGENO} / {nb}”无法显示。 只需将其注释掉或使用strpos('{DATE' > -1)检查它是否可用。 您还可以添加:

$mpdf->ignore_invalid_utf8 = true;

并且如果你不想要页脚行:

$mpdf->defaultfooterline = false;

在这些改变之后,分页终于为我工作了。