Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在mPDF文档中获取页面计数?_Php_Mpdf - Fatal编程技术网

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

Php 如何在mPDF文档中获取页面计数?,php,mpdf,Php,Mpdf,如果PDF文档使用mPDF库,有人知道如何获取生成的页数吗?将此添加到主mPDF类: function getPageCount() { return count($this->pages); } 然后添加一个html解析器,如字符串: $html = str_replace('{PAGECNT}', $this->getPageCount(), $html); 在这些操作之后,您可以直接在解析的HTML中插入{PAGECNT}以获得结果。这很有用,因为您需要指出一个页面

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

将此添加到主mPDF类:

function getPageCount() {
    return count($this->pages);
}
然后添加一个html解析器,如字符串:

$html = str_replace('{PAGECNT}', $this->getPageCount(), $html);

在这些操作之后,您可以直接在解析的HTML中插入{PAGECNT}以获得结果。这很有用,因为您需要指出一个页面:

我在使用EYiiPdf(Yii上mPDF的包装器)时正在寻找相同的功能,下面的操作非常有用:

$mPDF->setFooter('{PAGENO} / {nb}');
我检查了mPDF的源代码,在mPDF.php:1656(版本5.4)中找到了这个:


希望有帮助

您可以使用{nbpg},如

<div align="center"><b>{PAGENO} / {nbpg}</b></div>
{PAGENO}/{nbpg}

如果您试图返回页数,以便将其保存到数据库或mpdf以外的其他操作中,则可以通过这种方式轻松获取

编写内容后:

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

$mpdf->Output();
  • 总数的替换别名{nb}{nbpg}
  • {PAGENO}当前页码
更新

请注意,这个答案指的是mdf library 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\u replace('/\{DATE\s+(.*?\})/e',DATE('\\1'),$hd)

在mpdf.php函数Footer()中 这可能会导致您的“{PAGENO}/{nb}”不显示。 只需将它注释掉或使用strpos({DATE'>-1)
检查它是否可用。 此外,您可能需要添加:

$mpdf->ignore\u invalid\u utf8=true;

如果不需要页脚行:

$mpdf->defaultfooterline = false;

在这些更改之后,分页终于对我起作用了。

-may帮助您将其添加到主mPDF类:函数getPageCount(){return count($this->pages);}然后添加一个html解析器,例如字符串:$html=str_replace('{PAGECNT},$this->getPageCount(),$html);在这些操作之后,您可以插入{PAGECNT}直接在你解析的HTML中得到结果。这很有用,因为你需要指出一个页面,如:“第2页,共5页”。事实上,接受的答案对我来说不起作用!!你的解决方案解决了:)我正在使用mpdf创建PDF(在Yii内),PDF是从htmls创建的,我使用了setfooter到footer的东西,但它只显示在最后一页!如何在每个页面中都显示它?$mPDF1->setfooter({DATE j-m-Y}{PAGENO}/{nb},'O|E'));这对我很有用,但只显示在最后一页上,是否可以显示在每一页的页脚上?告诉pleaze需要在哪里插入解析html?在什么函数中?@VincePettit..如何在MPDFT中创建基于html的索引这是一个非常有用的答案。如果您使用
resetpagenum
{nbpg}
显示上次重置后的当前页码计数。如果要显示总页数,可以使用
{nb}
。我已经找了很久了,在文档中查找了几个小时,终于找到了答案。非常感谢!在其他地方找不到这个!谢谢!请解释一下应该如何使用。他们如何向应用程序返回页数?即使我可以回答你的问题,OP的问题也与此无关返回应用程序中的页数。这些是替换别名,它们被放入html模板并由mdf类实例解析。这是库v4的答案,如果我没记错,请参阅年份。此库的文档丢失(可能仍然存在),很难立即找到正确的占位符名称。请包括一个MWE(最低工作示例)。你不必测试它,尽管这会很好…实例化一个对象,使用参数..etc@aiao实际上,请随意编辑我的答案。我写这个答案是因为我自己花了一些时间寻找那些占位符(事实上,我从一开始就不知道它们存在).IMHO,如果OP要问这个问题,他非常清楚如何初始化库并从html创建基本pdf。我使用的上一个版本是6,现在可能有更新的版本。我认为我们不应该花太多时间来改进这个答案。
$mpdf->defaultfooterline = false;