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. Seit 1.0.293 strukturell über Get-PdfAttachment: Katalog, Namensbaum /Names /EmbeddedFiles mit allen Ebenen und /AF, Filterketten, Object Streams, inkrementelle Updates. Gewählt wird zuerst ein vorgeschriebener Name (factur-x.xml, zugferd-invoice.xml, ZUGFeRD-invoice.xml, xrechnung.xml), sonst ein XML-Anhang, dessen Wurzel eine Rechnung ist (Select-PdfEInvoiceAttachment). Vorher suchte die Funktion die Einsprungstelle per Regex im Rohtext und scheiterte bei fremden PDFs (CN 27.09.2026).
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"