Wie erstelle ich mit PHP 8.2 eine PDF/A-3-Datei?

Antwort vom

**Mit PHP 8.2 erstellst du eine PDF/A-3-Datei am praktikabelsten mit TCPDF; mPDF kann zwar PDF/A, ist dafür aber deutlich weniger klar dokumentiert und selbst die eigene Doku bezeichnet die Bibliothek insgesamt als veraltet. Für echte PDF/A-3-Anforderungen ist entscheidend: eingebettete Schriften, korrektes XMP/ICC-Profil und keine verbotenen PDF-Features.** ([tcpdf.org](https://tcpdf.org/)) ## Die kurze Antwort TCPDF unterstützt PDF/A 1/2/3 inklusive der Konformitätsstufen a/b/u direkt. Auf der Projektseite wird PDF/A-3 ausdrücklich genannt, und es gibt sogar ein Beispiel für PDF/A-3b. ([tcpdf.org](https://tcpdf.org/)) Wenn du nur „eine archivfähige PDF/A-3-Datei“ brauchst, ist **PDF/A-3b** meist die richtige Wahl. Wenn du zusätzlich maschinenlesbare Rechnungsdaten einbetten willst, ist PDF/A-3 auch die Basis für Factur-X/ZUGFeRD-Workflows. ([tcpdf.org](https://tcpdf.org/)) ## Warum viele Beispiele im Netz unvollständig sind Der typische Fehler ist: Es wird einfach „eine PDF erzeugt“ und dann behauptet, sie sei PDF/A-3. Das reicht nicht. Für PDF/A-3 müssen unter anderem diese Punkte stimmen: - Schriften müssen eingebettet sein. - Ein Output Intent mit ICC-Farbprofil muss vorhanden sein. - Metadaten müssen sauber gesetzt sein. - Verschlüsselung und andere unzulässige Features sind tabu. ([tcpdf.org](https://tcpdf.org/)) Genau daran scheitern viele kurze Blog-Beispiele. ## Empfohlener Weg mit TCPDF Installation per Composer: ```bash composer require tecnickcom/tcpdf ``` Ein minimales Beispiel für **PDF/A-3b** in PHP 8.2 sieht so aus: ```php <?php require __DIR__ . '/vendor/autoload.php'; use Com\Tecnick\Pdf\Tcpdf; $pdf = new Tcpdf( 'P', // orientation 'mm', // unit 'A4', // format true, // unicode 'UTF-8', false, false, 'PDF/A-3B' // entscheidend: PDF/A-3b-Modus ); $pdf->setCreator('Meine Anwendung'); $pdf->setAuthor('Max Mustermann'); $pdf->setTitle('Beispiel PDF/A-3'); $pdf->setSubject('Archivdokument'); $pdf->setKeywords('PDF/A-3, PHP 8.2, TCPDF'); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->SetMargins(20, 20, 20); $pdf->AddPage(); $pdf->SetFont('helvetica', '', 12); $pdf->Write(0, 'Dies ist ein PDF/A-3b-Dokument.'); $pdf->Output(__DIR__ . '/beispiel-pdfa3.pdf', 'F'); ``` Die entscheidende Stelle ist der Modus beim Erzeugen des Dokuments. TCPDF dokumentiert PDF/A-Unterstützung direkt, und das offizielle Beispiel 065 zeigt PDF/A-3b ausdrücklich. ([tcpdf.org](https://tcpdf.org/)) ## Was du in der Praxis zusätzlich beachten musst Der obige Code ist der Einstieg, aber für **valide** PDF/A-3-Dateien ist das hier entscheidend: ### 1. Eigene Schrift einbetten statt auf Zufall zu hoffen Für saubere Archivierung solltest du eine vollständig eingebettete Unicode-Schrift verwenden. Standardfonts sind in PDF/A-Kontexten oft die Stelle, an der Validatoren meckern. mPDF weist selbst darauf hin, dass PDF-Dateien nicht von externen Font-Ressourcen abhängen dürfen; das gilt praktisch genauso als Denkregel für PDF/A-Workflows allgemein. ([mpdf.github.io](https://mpdf.github.io/what-else-can-i-do/pdf-a1-b-compliance.html)) ### 2. PDF/A-3 ist nicht automatisch „inhaltlich korrekt“ PDF/A-3 erlaubt eingebettete Dateien. Das heißt aber nicht, dass jede eingebettete XML oder beliebige Anlage automatisch fachlich korrekt ist. Für **ZUGFeRD/Factur-X** brauchst du zusätzlich die richtige XML-Struktur und passende Metadaten. TCPDF nennt diese Workflows ausdrücklich als PDF/A-3-Anwendungsfall. ([tcpdf.org](https://tcpdf.org/)) ### 3. Immer validieren Erzeuge die Datei nicht nur, sondern prüfe sie mit einem PDF/A-Validator. Sonst merkst du Fehler oft erst beim Archivsystem oder beim Rechnungsempfänger. Der praktische Unterschied ist wichtig: **„PDF mit Anhang“** ist leicht. **„Valides PDF/A-3“** ist der eigentliche Aufwand. ## Wann mPDF sinnvoll ist – und wann nicht mPDF nennt PDF/A-3-Unterstützung ebenfalls in der Doku, inklusive Variablen für PDF/A-Versionen. Gleichzeitig weist die eigene Startseite darauf hin, dass mPDF insgesamt eine eher alte Software ist und heute oft bessere Alternativen existieren. Für HTML-zu-PDF kann mPDF bequem sein, für robuste PDF/A-3-Workflows würde ich trotzdem TCPDF bevorzugen. ([mpdf.github.io](https://mpdf.github.io/about-mpdf/features.html)) ## Klare Empfehlung **Wenn du mit PHP 8.2 eine echte PDF/A-3-Datei erzeugen willst, nimm TCPDF und ziele standardmäßig auf PDF/A-3b.** Das ist der sauberste Weg, weil PDF/A-3 dort offiziell unterstützt und als konkreter Workflow dokumentiert ist. ([tcpdf.org](https://tcpdf.org/)) Wenn du später ZUGFeRD oder Factur-X brauchst, ist das derselbe sinnvolle Unterbau. ([tcpdf.org](https://tcpdf.org/))

Kategorie: Technik Tags: PHP PDFA3 Datei

Verwandte Fragen

Womit kann ich eine PCD-Datei öffnen?

Eine .PCD-Datei öffnest du meist mit einem 3D-Punktwolken-Programm wie CloudCompare oder MeshLab; wenn es wirklich das Point-Cloud-Format ist, funktionieren normale Bild- oder Textprogramme nicht...

Wie wird aus einer .torrent-Datei die eigentliche Datei?

Aus einer .torrent-Datei wird nicht direkt „die Datei“ – sie ist nur eine Steuerdatei. Du brauchst einen BitTorrent-Client, der damit die eigentlichen Daten von anderen Teilnehmern h...

Wie lassen sich in VB.NET 2003 Änderungen an einer Originaldatei automatisch in mehreren Projekten aktualisieren?

Ja – aber nicht zuverlässig über „Kopien“ derselben Datei. Der saubere Weg ist, den gemeinsamen Code in eine zentrale Stelle auszulagern; nur dann wirken Änderungen au...

Was ist die EML-Funktion?

Mit „EML-Funktion“ ist meist keine eigene Funktion gemeint, sondern das EML-Format: eine .eml-Datei speichert genau eine E-Mail komplett mit Betreff, Absender, Inhalt, Anhängen und te...

Wie erkennt man auf einem Windows-System eine durch Ransomware verschlüsselte Datei?

Eine von Ransomware verschlüsselte Datei erkennst du meist nicht an einem „magischen“ Einzelmerkmal, sondern an einer Kombination aus unlesbarem Inhalt, geänderter Dateiendung un...

Können PDF-Dateien per Bluetooth übertragen werden?

Ja. PDF-Dateien lassen sich per Bluetooth übertragen, wenn beide Geräte Bluetooth-Dateiübertragung unterstützen. Entscheidend ist nicht das PDF-Format, sondern ob das jeweilige Ger...