Кто-нибудь знает, как получить число сгенерированных страниц, если PDF-документ используется в библиотеке mPDF?
Я искал такую же функциональность при использовании EYiiPdf (обертка для mPDF на Yii), и следующее работало как шарм:
$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>
Ответ может быть отражен в исходной документации:
http://mpdf1.com/manual/index.php?tid=314
заменяющие псевдонимы {nb} и {nbpg} для общего числа
и {PAGENO} для текущего номера страницы
добавьте это в основной класс mPDF:
function getPageCount() { return count($this->pages); }
затем добавьте html-parser такую строку:
$html = str_replace('{PAGECNT}', $this->getPageCount(), $html);
после этих действий вы можете вставить {PAGECNT} непосредственно в свой разборный HTML, чтобы получить результат. Это полезно, если вам нужно указать страницу:
Если вы пытаетесь вернуть количество страниц, чтобы сохранить это в базе данных или какой-либо другой операции за пределами mpdf, ее легко вытащить.
После того, как вы напишете свой контент:
$ Mpdf-> WriteHTML ($ HTML);
$ page_count = $ mpdf -> page;
$ Mpdf-> Выход ();
Следите за строкой:
preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$hd);
в функции mpdf.php Footer () Это может привести к тому, что ваш «{PAGENO} / {nb}» не будет отображаться. Просто прокомментируйте это или используйте strpos('{DATE' > -1)
чтобы проверить, доступен ли он. Также вам может потребоваться добавить:
$mpdf->ignore_invalid_utf8 = true;
а также, если вы не хотите нижний колонтитул:
$mpdf->defaultfooterline = false;
После этих изменений разбивка на страницы помогла мне наконец.