Wie erhalte ich eine Seitenzahl in einem mPDF-Dokument?

Lesezeit: 3 Minuten

Weiß jemand, wie man die Anzahl der generierten Seiten erhält, wenn ein PDF-Dokument die mPDF-Bibliothek verwendet?

  • stackoverflow.com/questions/1098156/… – kann Ihnen helfen

    – Rikesh

    23. April 2012 um 12:40 Uhr

  • fügen Sie dies einer mPDF-Hauptklasse hinzu: function getPageCount() { return count($this->pages); } dann fügen Sie einen HTML-Parser hinzu, wie zum Beispiel: $html = str_replace(‘{PAGECNT}’, $this->getPageCount(), $html); Nach diesen Aktionen können Sie {PAGECNT} direkt in Ihr geparstes HTML einfügen, um das Ergebnis zu erhalten. Dies ist nützlich, wenn Sie eine Seite angeben müssen, z. B.: “Seite 2 von 5”.

    – Nikita Gopkalo

    23. April 2012 um 13:23 Uhr

Ich habe nach der gleichen Funktionalität gesucht, als ich EYiiPdf (ein Wrapper für mPDF auf Yii) verwendet habe, und das Folgende hat wie ein Zauber funktioniert:

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

Ich habe die Quelle von mPDF überprüft und diese unter mpdf.php:1656 (Version 5.4) gefunden:

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

Ich hoffe es hilft!

  • Eigentlich akzeptierte Antwort funktioniert nicht für mich !! Und deine Lösung hat funktioniert 🙂

    – sravis

    13. Juni 2013 um 9:58 Uhr


  • Ich erstelle PDFs mit mpdf (in Yii), PDFs werden aus HTMLs erstellt, und ich habe setfooter für die Fußzeile verwendet, aber es wird nur auf der letzten Seite angezeigt! Wie bekomme ich das auf jede Seite? $mPDF1->setFooter(‘{DATE jmY}|{PAGENO}/{nb}’,’O|E’);

    – arun

    7. März 2014 um 6:57 Uhr

Sie können verwenden {nbpg}wie

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

  • Dies ist eine sehr nützliche Antwort. Wenn Sie verwenden resetpagenum, {nbpg}zeigt die aktuelle Seitenzahl seit Ihrer letzten Zurücksetzung an. Wenn Sie die Gesamtseitenzahl anzeigen möchten, können Sie verwenden {nb}.

    – Mandy Schoep

    12. Juni 2014 um 15:02 Uhr


Benutzeravatar von John F
John F

Wenn Sie versuchen, die Anzahl der Seiten zurückzugeben, damit Sie diese in einer Datenbank oder einer anderen Operation außerhalb von mpdf speichern können, ist es einfach, sie auf diese Weise zu ziehen.

Nachdem Sie Ihren Inhalt geschrieben haben:

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

$mpdf->Output();

  • Ich habe AGES danach gesucht, stundenlang die Dokumente durchgesehen und endlich die Antwort gefunden. Ich danke dir sehr!

    – Aleksandar Bencun

    7. August 2016 um 19:54 Uhr

  • Konnte das nirgendwo anders finden! Vielen Dank!

    – axelra82

    28. Mai 2018 um 20:54 Uhr

fügen Sie dies einer Haupt-mPDF-Klasse hinzu:

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

fügen Sie dann einen HTML-Parser wie eine Zeichenfolge hinzu:

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

Nach diesen Aktionen können Sie {PAGECNT} direkt in Ihr geparstes HTML einfügen, um das Ergebnis zu erhalten. Dies ist nützlich, wenn Sie eine Seite angeben müssen:

Benutzeravatar von sr9yar
sr9yar

  • Ersatz-Aliase {nb} und {nbpg} für Gesamtzahl
  • {SEITE NUMMER} für die aktuelle Seitenzahl

AKTUALISIEREN

Bitte beachten Sie, dass sich diese Antwort auf die mdf-Bibliothek v4 bezieht, die zum Zeitpunkt des Schreibens eine aktuelle Version war.

Minimales Arbeitsbeispiel von @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();
?>

  • Bitte erläutern Sie, wie das verwendet werden soll. Wie geben sie eine Seitenzahl an die Anwendung zurück?

    – Nico Haase

    7. November 2019 um 11:08 Uhr

  • Obwohl ich antworten kann Ihre Frage, die Frage des OP hat nichts damit zu tun, die Anzahl der Seiten in die Anwendung zurückzugeben. Jene sind Ersatz-Aliase, werden sie in Ihre HTML-Vorlage eingefügt und von der mdf-Klasseninstanz analysiert. Dies ist eine Antwort für die Bibliothek v4, wenn ich mich richtig erinnere, sehen Sie bitte das Jahr. Die Dokumentation für diese Bibliothek fehlte (vielleicht immer noch), was es schwierig machte, die richtigen Platzhalternamen sofort zu finden.

    – sr9yar

    7. November 2019 um 13:07 Uhr

  • Bitte fügen Sie ein MWE (Minimum Working Example) bei. Sie müssen es nicht testen, obwohl es schön wäre …. ein Objekt instanziieren, verwenden Sie den Parameter ..etc $mpdf->WriteHTML($seitenzahl); $mpdf->Ausgabe();?>

    – aiao

    7. November 2019 um 15:01 Uhr


  • @aiao Eigentlich können Sie meine Antwort gerne bearbeiten. Ich habe diese Antwort geschrieben, weil ich selbst einige Zeit damit verbringen musste, diese Platzhalter zu finden (tatsächlich wusste ich nicht, dass sie von Anfang an existierten). IMHO, wenn das OP an den Punkt gekommen ist, diese Frage zu stellen, weiß er ziemlich gut, wie man die Bibliothek initialisiert und ein einfaches PDF aus HTML erstellt. Die letzte Version, mit der ich gearbeitet habe, war Version 6, es gibt jetzt wahrscheinlich eine neuere Version. Ich denke nicht, dass wir so viel Zeit damit verbringen sollten, diese Antwort zu verbessern.

    – sr9yar

    7. November 2019 um 15:13 Uhr

Benutzeravatar von Goce Dimkovski
Göce Dimkovski

Achten Sie auf die Zeile:

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

in der mpdf.php-Funktion Footer() Dies kann dazu führen, dass Ihr “{PAGENO} / {nb}” nicht angezeigt wird. Einfach auskommentieren oder verwenden strpos('{DATE' > -1) um zu prüfen, ob es verfügbar ist. Außerdem müssen Sie möglicherweise Folgendes hinzufügen:

$mpdf->ignore_invalid_utf8 = true;

und auch wenn Sie keine Fußzeile möchten:

$mpdf->defaultfooterline = false;

Nach diesen Änderungen hat die Paginierung bei mir endlich funktioniert.

  • Bitte erläutern Sie, wie das verwendet werden soll. Wie geben sie eine Seitenzahl an die Anwendung zurück?

    – Nico Haase

    7. November 2019 um 11:08 Uhr

  • Obwohl ich antworten kann Ihre Frage, die Frage des OP hat nichts damit zu tun, die Anzahl der Seiten in die Anwendung zurückzugeben. Jene sind Ersatz-Aliase, werden sie in Ihre HTML-Vorlage eingefügt und von der mdf-Klasseninstanz analysiert. Dies ist eine Antwort für die Bibliothek v4, wenn ich mich richtig erinnere, sehen Sie bitte das Jahr. Die Dokumentation für diese Bibliothek fehlte (vielleicht immer noch), was es schwierig machte, die richtigen Platzhalternamen sofort zu finden.

    – sr9yar

    7. November 2019 um 13:07 Uhr

  • Bitte fügen Sie ein MWE (Minimum Working Example) bei. Sie müssen es nicht testen, obwohl es schön wäre …. ein Objekt instanziieren, verwenden Sie den Parameter ..etc $mpdf->WriteHTML($seitenzahl); $mpdf->Ausgabe();?>

    – aiao

    7. November 2019 um 15:01 Uhr


  • @aiao Eigentlich können Sie meine Antwort gerne bearbeiten. Ich habe diese Antwort geschrieben, weil ich selbst einige Zeit damit verbringen musste, diese Platzhalter zu finden (tatsächlich wusste ich nicht, dass sie von Anfang an existierten). IMHO, wenn das OP an den Punkt gekommen ist, diese Frage zu stellen, weiß er ziemlich gut, wie man die Bibliothek initialisiert und ein einfaches PDF aus HTML erstellt. Die letzte Version, mit der ich gearbeitet habe, war Version 6, es gibt jetzt wahrscheinlich eine neuere Version. Ich denke nicht, dass wir so viel Zeit damit verbringen sollten, diese Antwort zu verbessern.

    – sr9yar

    7. November 2019 um 15:13 Uhr

1404630cookie-checkWie erhalte ich eine Seitenzahl in einem mPDF-Dokument?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy