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"