Dieses Dokument bezieht sich auf FPDI 2. Version 1 ist veraltet und die Entwicklung wird eingestellt.
FPDI ist eine Sammlung von PHP-Klassen, die es Entwicklern ermöglicht, Seiten aus vorhandenen PDF-Dokumenten zu lesen und sie als Vorlagen in FPDF zu verwenden, das von Olivier Plathey entwickelt wurde. Abgesehen von einer Kopie von FPDF benötigt FPDI keine speziellen PHP-Erweiterungen.
FPDI kann auch als Erweiterung für TCPDF oder tFPDF verwendet werden.
Da FPDI mit FPDF, TCPDF oder tFPDF verwendet werden kann, haben wir der Hauptdatei „composer.json“ keine feste Abhängigkeit hinzugefügt. Sie müssen die Abhängigkeit selbst zur PDF-Generierungsbibliothek Ihrer Wahl hinzufügen.
Um FPDI mit FPDF zu verwenden, fügen Sie Folgendes in Ihre Composer.json-Datei ein:
{"require": {"setasign/fpdf": "1.8.*", "setasign/fpdi": "^2.5"} }
Wenn Sie TCPDF verwenden möchten, müssen Sie Ihre Composer.json auf Folgendes aktualisieren:
{"require": {"tecnickcom/tcpdf": "6.6.*", "setasign/fpdi": "^2.5"} }
Wenn Sie tFPDF verwenden möchten, müssen Sie Ihre Composer.json auf Folgendes aktualisieren:
{"require": {"setasign/tfpdf": "1.33.*", "setasign/fpdi": "^2.3"} }
Wenn Sie Composer nicht verwenden, benötigen Sie einfach die Datei autoload.php im Ordner /src:
require_once('src/autoload.php');
Wenn Sie einen PSR-4-Autoloader implementiert haben, registrieren Sie einfach den Quellpfad wie folgt:
$loader = new examplePsr4AutoloaderClass;$loader->register();$loader->addNamespace('setasignFpdi', 'path/to/src/');
Version 2 ist eine komplette Neufassung von FPDI, die Folgendes beinhaltet:
Namespace-Code
Saubere und aktuelle Codebasis und Stil
PSR-4-kompatibles automatisches Laden
Leistungssteigerungen um bis zu 100 %
Weniger Speicherverbrauch
Native Unterstützung für das Lesen von PDFs aus Strings oder Stream-Ressourcen
Unterstützung für Dokumente mit „ungültigen“ Daten vor ihrem Datei-Header
Optimierte Seitenbaumauflösung
Nutzung einzelner Ausnahmen
Mehrere Testarten (Einheits-, Funktions- und visuelle Tests)
Wir haben versucht, die Hauptmethoden und den logischen Arbeitsablauf wie in Version 1 beizubehalten. Bitte beachten Sie jedoch, dass es inkompatible Änderungen gab, die Sie beim Update auf Version 2 berücksichtigen sollten:
Sie müssen den Code mithilfe der Datei src/autoload.php
anstelle classes/FPDI.php
laden.
Die Klassen und Merkmale haben jetzt einen Namensraum: setasignFpdi
Seitengrenzen, die mit einem Schrägstrich beginnen, wie z. B. /MediaBox
, werden nicht mehr unterstützt. Entfernen Sie den Schrägstrich oder verwenden Sie die Konstante PdfReaderPageBoundaries
.
Die Parameter $x, $y, $width und $height der Methode useTemplate()
oder getTemplateSize()
haben jetzt logisch korrektere Standardwerte. Die Übergabe von 0
als Breite oder Höhe führt jetzt zu einer InvalidArgumentException
.
Der Rückgabewert von getTemplateSize()
wurde in ein Array mit mehr sprechenden Schlüsseln und Wiederverwendbarkeit geändert: Verwenden Sie width
statt w
und height
statt h
.
Wenn Sie FPDI mit TCPDF verwenden möchten, müssen Sie Ihren Code umgestalten, um die Klasse TcpdfFpdi
(seit 2.1; vorher TcpdfFpdi
) anstelle von FPDI
zu verwenden.
Ein einfaches Beispiel, das eine einzelne Seite importiert und diese auf einer neu erstellten Seite platziert:
AddPage();// set die Quelldatei$pdf->setSourceFile("Fantastic-Speaker.pdf");// Seite importieren 1$tplId = $pdf->importPage(1);// die importierte Seite verwenden und an Punkt 10,10 mit platzieren eine Breite von 100 mm$pdf->useTemplate($tplId, 10, 10, 100);$pdf->Output();
Eine vollständige Endbenutzerdokumentation und API-Referenz finden Sie hier.