ConvertFrom-ZugferdPdf

EulandaXtools — Funktionsreferenz

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"