💻 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

  1. Créer la facture au format PDF/A-3 (par exemple avec 7-PDF Printer)
  2. Traiter le PDF avec C# via CLI ou API
  3. 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.

📥 Commencer dès maintenant – Outils et API disponibles

Activer l’accès API & démarrer

Top