EulandaXtools — Funktionsreferenz
Extrahiert die eingebettete ZUGFeRD- oder Factur-X-XML aus einer PDF-Datei.
ConvertFrom-ZugferdPdf [-Path] <string> [[-OutputXml] <string>] [<CommonParameters>]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.
-Path
Type: stringDer vollständige Pfad zur PDF-Datei, aus der die XML extrahiert werden soll.
-OutputXml
Type: stringOptionaler 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.
PSCustomObjectGibt 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)
# 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"