web-dev-qa-db-fra.com

Comment obtenir un nombre de pages dans un document mPDF?

Quelqu'un sait-il comment obtenir le nombre de pages générées s'il s'agit d'un document PDF utilisant la bibliothèque mPDF?

18
Nikita Gopkalo

ajoutez ceci à une classe mPDF principale:

function getPageCount() {
    return count($this->pages);
}

puis ajoutez un analyseur HTML tel que:

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

après ces actions, vous pouvez insérer {PAGECNT} directement dans votre code HTML analysé pour obtenir le résultat. Ceci est utile si vous devez indiquer une page:

3
Nikita Gopkalo

Je recherchais la même fonctionnalité en utilisant EYiiPdf (un wrapper pour mPDF sur Yii) et les éléments suivants ont fonctionné à la perfection:

$mPDF->setFooter('{PAGENO} / {nb}');

J'ai vérifié la source de mPDF et l'ai trouvé à mpdf.php: 1656 (version 5.4):

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

J'espère que ça aide!

25
Tomi Drpic

Vous pouvez utiliser {nbpg} , comme

<div align="center"><b>{PAGENO} / {nbpg}</b></div>
12
Zvonimir Burić

La réponse peut être trouvée dans la documentation originale:
http://mpdf1.com/manual/index.php?tid=314
alias de remplacement {nb} et {nbpg} pour le nombre total
et {PAGENO} pour le numéro de page actuel

5
sr9yar

Si vous essayez de renvoyer le nombre de pages afin que vous puissiez l'enregistrer dans une base de données ou une autre opération en dehors de mpdf, rien de plus simple.

Après avoir écrit votre contenu:
$ mpdf-> WriteHTML ($ html);

$ page_count = $ mpdf -> page;

$ mpdf-> Sortie ();

3
John F

Surveillez la ligne:

preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$hd);

dans la fonction mpdf.php Footer () Cela pourrait empêcher l'affichage de votre "{PAGENO}/{nb}". Faites simplement un commentaire ou utilisez strpos('{DATE' > -1) pour vérifier si elle est disponible. Aussi, vous devrez peut-être ajouter:

$mpdf->ignore_invalid_utf8 = true;

et aussi si vous ne voulez pas de ligne de pied de page:

$mpdf->defaultfooterline = false;

Après ces changements, la pagination a finalement fonctionné pour moi.

0
Goce Dimkovski