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

Nik*_*alo 20 php mpdf

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

小智 27

我在寻找相同的功能,同时使用EYiiPdf(Yii上的mPDF包装器),以下工作就像一个魅力:

$mPDF->setFooter('{PAGENO} / {nb}');
Run Code Online (Sandbox Code Playgroud)

我检查了mPDF的源代码,并在mpdf.php:1656(版本5.4)中找到了它:

function AliasNbPages($alias='{nb}') {
    //Define an alias for total number of pages
    $this->aliasNbPg=$alias;
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!


小智 13

您可以使用{} nbpg

<div align="center"><b>{PAGENO} / {nbpg}</b></div>
Run Code Online (Sandbox Code Playgroud)

  • 这是一个非常有用的答案.如果您使用`resetpagenum`,`{nbpg}`显示当前页码从上次重置开始计算.如果要显示总页数,可以使用`{nb}`. (3认同)

Nik*_*alo 5

将此添加到主要的mPDF类中:

function getPageCount() {
    return count($this->pages);
}
Run Code Online (Sandbox Code Playgroud)

然后添加一个html-parser这样的字符串:

$html = str_replace('{PAGECNT}', $this->getPageCount(), $html);
Run Code Online (Sandbox Code Playgroud)

完成这些操作后,您可以在解析的HTML中直接插入{PAGECNT}以获得结果。这在您需要指示页面时很有用:


小智 5

如果您试图返回页面数,以便将其保存到数据库或mpdf之外的其他操作中,则很容易以这种方式进行提取。

编写内容后:

$mpdf->WriteHTML($html);
$page_count = $mpdf -> page;

$mpdf->Output();
Run Code Online (Sandbox Code Playgroud)


sr9*_*yar 5

答案可以在原始文档中找到:
http://mpdf1.com/manual/index.php?tid = 314
替换别名{nb}{nbpg}总数
{PAGENO}当前页码