XML aus ZUGFeRD-PDF extrahieren
Direkte Antwort: Die XML einer ZUGFeRD-/Factur-X-Rechnung ist eine eingebettete Datei (meist factur-x.xml) im PDF/A-3-Container. Sie extrahieren sie, indem Sie den Anhang speichern – am einfachsten mit dem ZUGFeRD-XML-Extraktor, der die Datei lokal im Browser liest, den Inhalt prüft und die XML unverändert speichert. Alternativ geht es in jedem PDF-Programm mit Anhangsfunktion oder per Kommandozeile.
Weg 1: Im Browser (ohne Installation, ohne Upload)
- PDF auf der Seite ZUGFeRD-XML extrahieren auswählen.
- Das Werkzeug liest alle eingebetteten Dateien und prüft jede inhaltlich: Ist es XML? Ist das Wurzelelement
CrossIndustryInvoice(CII) oderInvoice/CreditNote(UBL)? Welche Profilkennung steht darin? - Bei einer Rechnungs-XML erscheint die Rechnung sofort lesbar; „Eingebettete XML extrahieren“ speichert die Datei Byte für Byte mit ihrem Originalnamen.
- Bei mehreren Kandidaten wählen Sie aus; bei keinem erhalten Sie die Erklärung, dass das PDF keine E-Rechnung ist.
Mehrere Dateien auf einmal: Alle PDFs laden, „ZIP (Stapel)“ – je Rechnung ein Ordner mit XML, lesbarer PDF-Darstellung und Prüfbericht.
Weg 2: PDF-Programm
Acrobat Reader: Büroklammer-Symbol in der linken Leiste → Anhang markieren → speichern. Firefox und Chrome: PDF öffnen, Seitenleiste → „Anhänge“ → Download-Symbol. Diese Programme prüfen den Inhalt nicht; Sie sehen nur den Dateinamen.
Weg 3: Kommandozeile
Mit dem Open-Source-Werkzeug Mustangproject (Java):
java -jar Mustang-CLI.jar --action extract --source rechnung.pdf --out factur-x.xml
Mit pdftk oder qpdf lassen sich Anhänge ebenfalls auslesen (pdftk rechnung.pdf unpack_files output ordner/). Für automatisierte Workflows ist das der übliche Weg.
Was die extrahierte XML ist – und was nicht
Die XML ist der steuerlich maßgebliche Teil der Rechnung (bei Abweichungen vom PDF-Bild hat sie Vorrang). Sie ist aber keine eigenständige „neue“ Rechnung: Rechnung ist die hybride Datei, die Sie erhalten haben. Archivieren Sie daher das Original-PDF unverändert; die extrahierte XML ist eine Arbeitskopie für Import, Prüfung oder Weitergabe an ein System, das nur XML liest.
Die XML kann auch in einem anderen Container stecken: ZUGFeRD-Dateien im Profil XRECHNUNG enthalten eine XRechnung-CII, die Sie als XML bei Behördenportalen einreichen könnten – klären Sie vorher, ob das Portal die hybride Datei oder nur die XML will.
Beispiel
Ein Steuerbüro erhält monatlich 40 ZUGFeRD-Rechnungen eines Mandanten. Es lädt alle 40 in den Extraktor, lässt sie prüfen und exportiert den Stapel als ZIP. Die XML-Dateien importiert es in die Kanzleisoftware, die Prüfberichte legt es zu den Belegen. Zwei Dateien meldet das Werkzeug als „gewöhnliches PDF“ – der Mandant hatte sie aus einem älteren Programm „als PDF gedruckt“; die Originale werden nachgefordert.
Häufige Fehler
- Extrahierte XML bearbeiten („nur die Adresse korrigieren“): Danach ist es keine Rechnung des Ausstellers mehr. Korrekturen erfolgen durch eine berichtigte E-Rechnung.
- Dateinamen als Beweis nehmen: Nur der Inhalt entscheidet, ob es eine EN-16931-Rechnung ist.
- ZUGFeRD 1.0 übersehen: Die alte
ZUGFeRD-invoice.xml(Namespace…:CrossIndustryDocument:…) ist nicht EN-16931-konform; aktuelle Systeme lehnen sie ab. - Eingebettete Fremddateien ungeprüft öffnen: Neben der XML können PDFs weitere Anhänge enthalten (Tabellen, Bilder). Behandeln Sie sie wie E-Mail-Anhänge.
Grenzen
Verschlüsselte PDFs benötigen das Passwort; signierte PDFs werden gelesen, die Signatur aber nicht geprüft. PDF-Skripte werden nie ausgeführt. Eine vollständige PDF/A-Prüfung findet nicht statt.
Passendes Werkzeug: ZUGFeRD-XML extrahieren – lokal im Browser, ohne Datei-Upload.
Quellen
- FeRD: ZUGFeRD-Spezifikation (Einbettung als PDF/A-3 Associated File) (abgerufen 21.10.2026)
- Mustangproject – Open-Source-Bibliothek und CLI für ZUGFeRD (Apache 2.0) (abgerufen 21.10.2026)