ZUGFeRD-Rechnungen mit C# erstellen – Beispiele für API und CLI-Integration
💻 ZUGFeRD-Rechnungen mit C# erstellen – Beispiele für API & CLI
Sie möchten ZUGFeRD-konforme Rechnungen mit Ihrer eigenen C#-Anwendung erstellen? Kein Problem! Mit 7-PDF Attach Extract and Remove und dem integrierten 7-PDF Invoice Extractor können Sie sowohl über die Kommandozeile als auch per REST API vollautomatisiert PDF-Rechnungen in gültige ZUGFeRD-Dokumente (PDF/A-3 mit XML) umwandeln.
Wichtig: Damit eine PDF-Rechnung ZUGFeRD-konform erweitert werden kann, muss sie im PDF/A-3 Format vorliegen. Wenn Ihre Ausgangsdatei das nicht ist, können Sie diese vorher einfach mit unserem 7-PDF Printer Professional konvertieren.
🛠️ Workflow: Von PDF zu ZUGFeRD
- Rechnung als PDF/A-3 erstellen (z. B. mit 7-PDF Printer)
- Mit C# per CLI oder API verarbeiten
- ZUGFeRD-konformes XML erzeugen und in PDF einbetten
🧪 Beispiel 1: CLI-Aufruf aus C# – XML einbetten
Dieses Beispiel nutzt das lokal installierte PDFAttachExtractAndRemoveFiles.exe
zur Einbettung einer vorhandenen factur-x.xml
Datei in ein PDF. Es ist kein API Token notwendig – ideal für Tests und Trailmodus.
using System.Diagnostics; class Program { static void Main() { string attachToolPath = @"C:\Program Files (x86)\7-PDF\7-PDF Attach Extract And Remove Files\PDFAttachExtractAndRemoveFiles.exe"; string inputPdf = @"C:\Rechnungen\original.pdf"; string zugferdXml = @"C:\Rechnungen\factur-x.xml"; string args = $"-mode \"console\" -usage \"attach\" -inpdf \"{inputPdf}\" -infile \"{zugferdXml}\" -estandard \"ZF21\""; var proc = new Process(); proc.StartInfo.FileName = attachToolPath; proc.StartInfo.Arguments = args; proc.StartInfo.CreateNoWindow = true; proc.StartInfo.UseShellExecute = false; proc.Start(); proc.WaitForExit(); if (proc.ExitCode == 0) { Console.WriteLine("PDF wurde erfolgreich mit XML erweitert."); } else { Console.WriteLine($"Fehler beim Einbetten. Exit-Code: {proc.ExitCode}"); } } }
Hinweis: Das Tool 7-PDF Attach Extract and Remove muss lokal installiert sein. Die Trailversion kann direkt verwendet werden (z. B. mit leerem API Token beim Druck).
🔐 Beispiel 2: API-Zugriff mit Token – PDF analysieren, XML generieren
Hier senden Sie die PDF-Rechnung an die 7-PDF FastAPI. Sie erhalten das analysierte Ergebnis inkl. ZUGFeRD XML zurück. Für diese Variante ist ein API-Token erforderlich. Mit Lizenzkauf erhalten Sie automatisch 25 Freiumwandlungen zur Nutzung.
using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; using System.IO; class Program { static async Task Main() { string pdfPath = @"C:\Rechnungen\original.pdf"; string apiToken = "IHR_API_TOKEN"; // z. B. über https://generator.7-pdf.de/login einsehbar var form = new MultipartFormDataContent(); var fileStream = File.OpenRead(pdfPath); var fileContent = new StreamContent(fileStream); fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/pdf"); form.Add(fileContent, "file", Path.GetFileName(pdfPath)); var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiToken); var response = await client.PostAsync("https://generator.7-pdf.de/extract-invoice/", form); var jsonResponse = await response.Content.ReadAsStringAsync(); dynamic parsed = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonResponse); File.WriteAllText("factur-x.xml", (string)parsed.xml); Console.WriteLine("ZUGFeRD XML gespeichert als factur-x.xml"); } }
Jetzt testen: API-Zugang freischalten
📎 Zusatz: XML per CLI in PDF einfügen
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "attach" -inpdf "original.pdf" -infile "factur-x.xml" -estandard "ZF21"
✅ Das Ergebnis ist eine normkonforme PDF/A-3 ZUGFeRD E-Rechnung – DIN EN 16931 konform!