mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generiert.
Es basiert auf FPDF und HTML2FPDF (siehe CREDITS) und weist eine Reihe von Verbesserungen auf. mPDF wurde von Ian Back geschrieben und steht unter der GNU GPL v2-Lizenz.
Wenn Sie diese Datei auf der GitHub-Repository-Homepage von mPDF oder auf Packagist anzeigen, beachten Sie bitte, dass der Standard-Repository-Zweig development
ist, der von der letzten stabilen Version abweichen kann.
PHP >=5.6 <7.3.0
wird für mPDF >= 7.0
unterstützt
PHP 7.3
wird seit mPDF v7.1.7
unterstützt
PHP 7.4
wird seit mPDF v8.0.4
unterstützt
PHP 8.0
wird seit mPDF v8.0.10
unterstützt
PHP 8.1
wird ab mPDF v8.0.13
unterstützt
PHP 8.2
wird ab mPDF v8.1.3
unterstützt
PHP 8.3
wird ab mPDF v8.2.1
unterstützt
PHP 8.4
wird ab mPDF v8.2.5
unterstützt
PHP-Erweiterungen mbstring
und gd
müssen geladen werden.
Für einige erweiterte Funktionen sind möglicherweise zusätzliche Erweiterungen erforderlich, z. B. zlib
zur Komprimierung der Ausgabe und eingebettete Ressourcen wie Schriftarten, bcmath
zum Generieren von Barcodes oder xml
zur Zeichensatzkonvertierung und SVG-Verarbeitung.
mPDF hat einige Probleme beim Abrufen externer HTTP-Ressourcen mit Single-Threaded-Servern wie php -S
. Ein geeigneter Server wie Nginx (php-fpm) oder Apache wird empfohlen.
Erwägen Sie, die Entwicklung von mPDF mit einer Spende jeglichen Werts zu unterstützen. Den Spenden-Button finden Sie auf der Hauptseite der Dokumentation.
Die offizielle Installationsmethode erfolgt über Composer und sein Packagist-Paket mpdf/mpdf.
$ composer require mpdf/mpdf
Die einfachste Nutzung (seit Version 7.0) der Bibliothek wäre wie folgt:
<?phprequire_once __DIR__ . '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>Hallo Welt!</h1>');$mpdf->Output();
Dadurch wird die PDF-Datei inline als application/pdf
Content-type an den Browser ausgegeben.
Alle Konfigurationsanweisungen können durch den $config
Parameter des Konstruktors festgelegt werden.
Es wird empfohlen, über die Konfigurationsvariable tempDir
ein eigenes temporäres Verzeichnis festzulegen. Das Verzeichnis muss über Schreibberechtigungen verfügen (Modus 775
wird empfohlen) für Benutzer, die mPDF verwenden (normalerweise cli
, webserver
, fpm
).
Warnung: mPDF bereinigt alte temporäre Dateien im temporären Verzeichnis. Wählen Sie einen Pfad, der nur für mPDF vorgesehen ist.
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
Standardmäßig befindet sich das temporäre Verzeichnis im Herstellerverzeichnis und verfügt über Schreibberechtigungen vom Composer-Skript post_install
.
Weitere Informationen zum benutzerdefinierten temporären Verzeichnis finden Sie im Hinweis zum Ordner für temporäre Dateien im Abschnitt zur Installation und Einrichtung im Handbuch.
Wenn Sie Probleme haben, lesen Sie bitte den Abschnitt zur Fehlerbehebung im Handbuch.
mPDF als Ganzes ist eine ziemlich veraltete Software. Heutzutage gibt es bessere Alternativen, allerdings nicht in PHP geschrieben.
Verwenden Sie mPDF, wenn Sie zum Generieren von PDF-Dateien keinen Nicht-PHP-Ansatz verwenden können oder wenn Sie einige der Vorteile von mPDF gegenüber dem Browser-Ansatz nutzen möchten – Farbverarbeitung, Vordruck, Barcode-Unterstützung, Kopf- und Fußzeilen, Seitennummerierung, Inhaltsverzeichnisse usw Beachten Sie jedoch, dass möglicherweise eine auf mPDF zugeschnittene HTML/CSS-Vorlage erforderlich ist.
Wenn Sie auf der Suche nach modernster CSS-Unterstützung sind und vorhandene HTML-Seiten in PDF spiegeln möchten, verwenden Sie Headless Chrome.
mPDF wird noch aktualisiert, um einige interne Funktionen zu verbessern und neuere PHP-Versionen zu unterstützen, eine bessere und/oder neuere CSS-Unterstützung wird jedoch höchstwahrscheinlich nicht implementiert.
Das Online-Handbuch ist unter https://mpdf.github.io/ verfügbar.
Für allgemeine Fragen oder zur Fehlerbehebung nutzen Sie bitte Diskussionen.
Sie können auch das mpdf-Tag bei Stack Overflow verwenden, da die StackOverflow-Benutzerbasis Ihnen mit größerer Wahrscheinlichkeit zeitnah antwortet.
Bevor Sie Issues und Pull Requests einreichen, lesen Sie bitte die Datei CONTRIBUTING.md.
Unit-Tests für mPDF werden mit PHPUnit durchgeführt.
Um zu beginnen, führen Sie composer install
über die Befehlszeile aus, während Sie sich im mPDF-Stammverzeichnis befinden (Composer muss zuerst installiert werden).
Um Tests auszuführen, führen Sie composer test
über die Befehlszeile aus, während Sie sich im mPDF-Stammverzeichnis befinden.
Für jede Unterstützung beim Schreiben von Unit-Tests für mPDF sind wir sehr dankbar. Wenn Sie helfen möchten, beachten Sie bitte, dass alle PHP-Dateien im Verzeichnis /tests/
beim Unit-Test automatisch geladen werden.