💻 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

  1. Rechnung als PDF/A-3 erstellen (z. B. mit 7-PDF Printer)
  2. Mit C# per CLI oder API verarbeiten
  3. 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!

📥 Jetzt Tools & API-Zugang nutzen

API-Zugang erhalten & Tools starten

Top