Créer des factures ZUGFeRD avec C# – Exemples d’intégration API et CLI
💻 Créer des factures ZUGFeRD avec C# – Exemples d’intégration API & CLI
Vous souhaitez générer automatiquement des factures conformes à ZUGFeRD dans votre propre application C# ? C’est possible ! Grâce à 7-PDF Attach Extract and Remove et à l’intégration du 7-PDF Invoice Extractor, vous pouvez automatiser le traitement de vos factures PDF en documents ZUGFeRD valides (PDF/A-3 avec XML) via la ligne de commande ou une API REST.
Important : Pour qu’une facture PDF soit conforme à ZUGFeRD, elle doit être au format PDF/A-3. Si ce n’est pas encore le cas, vous pouvez la convertir au préalable avec notre 7-PDF Printer Professional.
🛠️ Processus : De PDF à ZUGFeRD
- Créer la facture au format PDF/A-3 (par exemple avec 7-PDF Printer)
- Traiter le PDF avec C# via CLI ou API
- Générer le XML ZUGFeRD et l’intégrer dans le PDF
🧪 Exemple 1 : App C# avec CLI – Intégrer un XML existant
Cet exemple appelle l’outil local PDFAttachExtractAndRemoveFiles.exe
pour intégrer un fichier factur-x.xml
dans un PDF existant. Aucun token API n’est requis – idéal pour les tests avec la version d’essai.
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:\Factures\original.pdf"; string zugferdXml = @"C:\Factures\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 mis à jour avec succès avec le XML."); } else { Console.WriteLine($"Erreur d’intégration. Code de sortie : {proc.ExitCode}"); } } }
Remarque : L’outil 7-PDF Attach Extract and Remove doit être installé localement. La version d’essai peut être utilisée directement (par exemple avec un token vide en mode impression).
🔐 Exemple 2 : Accès API avec token – Analyse & récupération du XML
Dans cet exemple, la facture PDF est envoyée à l’API FastAPI 7-PDF. Vous recevez une analyse complète ainsi que le XML ZUGFeRD généré. Cette méthode nécessite un token API valide. L’achat d’une licence comprend 25 conversions gratuites.
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:\Factures\original.pdf"; string apiToken = "VOTRE_API_TOKEN"; // récupérable sur https://generator.7-pdf.de/login 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("XML ZUGFeRD enregistré sous factur-x.xml"); } }
Tester maintenant : Obtenir un accès API
📎 Astuce : intégrer le XML via CLI
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "attach" -inpdf "original.pdf" -infile "factur-x.xml" -estandard "ZF21"
✅ Le résultat est une facture ZUGFeRD conforme PDF/A-3 – certifiée DIN EN 16931.