Convert From Zugferd Pdf
Zuletzt geändert: 14.03.2026 05:56

ConvertFrom-ZugferdPdf #

ÜBERSICHT #

Extrahiert die eingebettete ZUGFeRD- oder Factur-X-XML aus einer PDF-Datei.

SYNTAX #

ConvertFrom-ZugferdPdf [-Path] <string> [[-OutputXml] <string>] [<CommonParameters>]

BESCHREIBUNG #

Die Funktion liest eine PDF-Datei und extrahiert die eingebettete XML-Datei (factur-x.xml, zugferd-invoice.xml, xrechnung.xml oder ZUGFeRD-invoice.xml). Dazu wird die PDF-Xref-Tabelle strukturell geparst, das Filespec-Objekt per Objektnummer lokalisiert und der zugehörige EmbeddedFile-Stream per Xref-Offset extrahiert und ggf. dekomprimiert. Unterstützt werden klassische Xref-Tabellen, XRef-Streams (PDF 1.5+), Hybrid-PDFs, linearisierte PDFs und Objekte in Object Streams (Type-2). Falls die Dateinamen-Suche im Rohtext fehlschlägt (z.B. bei komprimierten Filespec-Objekten in ObjStm), wird ein strukturelles Fallback-Parsing über den PDF-Catalog und EmbeddedFiles Name-Tree durchgeführt.

Zusätzlich werden die ZUGFeRD/Factur-X-Metadaten aus den XMP-Daten des PDF gelesen (Version, ConformanceLevel, DocumentType, DocumentFileName).

Das Ergebnis ist ein PSCustomObject mit den Eigenschaften Xml, FileName, Version, ConformanceLevel, DocumentType und OutputPath.

Bei -OutputXml mit einem Verzeichnispfad (oder einem Pfad der auf \ bzw. / endet) wird der native eingebettete Dateiname verwendet.

PARAMETER #

-Path #

Type: string

Der vollständige Pfad zur PDF-Datei, aus der die XML extrahiert werden soll.

-OutputXml #

Type: string

Optionaler Ausgabepfad für die extrahierte XML-Datei. Kann ein Dateipfad oder ein Verzeichnispfad sein. Bei einem Verzeichnis wird der eingebettete Dateiname (z.B. factur-x.xml) automatisch angehängt.

AUSGABEN #

PSCustomObject

Gibt ein Objekt mit folgenden Eigenschaften zurück: Xml - Die extrahierte XML als String FileName - Eingebetteter Dateiname (z.B. “factur-x.xml”) Version - ZUGFeRD/Factur-X Version (z.B. “1.0”) ConformanceLevel - Profil (z.B. “EN 16931”, “EXTENDED”) DocumentType - Dokumenttyp (z.B. “INVOICE”) OutputPath - Pfad der geschriebenen Datei (nur bei -OutputXml)

BEISPIELE #

# Extrahiert die XML und gibt ein Objekt zurück.
$result = ConvertFrom-ZugferdPdf -Path 'C:\Rechnungen\zugferd.pdf'
$result.Xml              # XML-Inhalt
$result.FileName         # z.B. "factur-x.xml"
$result.Version          # z.B. "1.0"
$result.ConformanceLevel # z.B. "EN 16931"
# Extrahiert die XML und speichert sie in eine Datei.
$result = ConvertFrom-ZugferdPdf -Path 'C:\Rechnungen\zugferd.pdf' -OutputXml 'C:\Temp\factur-x.xml'
$result.OutputPath       # "C:\Temp\factur-x.xml"
# Speichert mit nativem Dateinamen in ein Verzeichnis.
$result = ConvertFrom-ZugferdPdf -Path 'C:\Rechnungen\zugferd.pdf' -OutputXml 'C:\Temp\'
$result.OutputPath       # z.B. "C:\Temp\factur-x.xml"