Création de PDF conforme à PDF/3-A et attachement de la facture ZUGFeRD en C#

Attacher ZUGFeRD au PDF

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

Nous recommandons de suivre les étapes suivantes pour attacher ZUGFeRD au PDF :

  • Définir une variable de chemin qui pointe vers un dossier où se trouvent les fichiers PDF d’entrée et de sortie.
  • Créer un objet document en chargeant un fichier PDF existant (par exemple, “ZUGFeRD-test.pdf”) depuis le chemin.
  • Créer un objet FileSpecification en fournissant le chemin et la description d’un autre fichier nommé “factur-x.xml”, qui contient des métadonnées de facturation conformes à la norme ZUGFeRD.
  • Ajouter des propriétés à l’objet de spécification de fichier, telles que la description, le type MIME et la relation AF. La relation AF indique comment le fichier intégré est lié au document PDF. Dans ce cas, elle est définie sur “Alternative”, ce qui signifie que le fichier intégré est une représentation alternative du contenu PDF.
  • Ajouter l’objet de spécification de fichier à la collection de fichiers intégrés du document. Le nom du fichier doit être spécifié selon la norme ZUGFeRD, par exemple “factur-x.xml”.
  • Convertir le document au format PDF/A-3B, un sous-ensemble de PDF qui garantit la préservation à long terme des documents électroniques. PDF/A-3B permet d’intégrer des fichiers de tout format dans des documents PDF.
  • Enregistrer le document converti en tant que nouveau fichier PDF (par exemple, “ZUGFeRD-res.pdf”).
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AttachZUGFeRD()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "ZUGFeRD-testInput.pdf"))
    {
        // Setup new file to be added as attachment
        var description = "Invoice metadata conforming to ZUGFeRD standard";
        var fileSpecification = new Aspose.Pdf.FileSpecification(dataDir + "ZUGFeRD-testXmlInput.xml", description)
        {
            Description = "Zugferd",
            MIMEType = "text/xml",
            Name = "factur-x.xml"
        };
        // Add attachment to document's attachment collection
        document.EmbeddedFiles.Add(fileSpecification);
        document.Convert(new MemoryStream(), Aspose.Pdf.PdfFormat.ZUGFeRD, Aspose.Pdf.ConvertErrorAction.Delete);
        // Save PDF document
        document.Save(dataDir + "AttachZUGFeRD_out.pdf");
    }
}

La méthode de conversion prend un flux, un format PDF et une action d’erreur de conversion comme paramètres. Le paramètre de flux peut être utilisé pour enregistrer le journal de conversion. Le paramètre d’action d’erreur de conversion spécifie quoi faire si des erreurs se produisent pendant la conversion. Dans ce cas, il est défini sur “Supprimer”, ce qui signifie que tout élément qui n’est pas conforme au format PDF/A-3B sera supprimé du document.