Création d'un PDF conforme à PDF/3-A et attachement de facture ZUGFeRD en Python
Attacher ZUGFeRD au PDF
Nous recommandons de suivre les étapes suivantes pour attacher ZUGFeRD au PDF :
-
Importez la bibliothèque Aspose.PDF et donnez-lui un alias ap pour plus de commodité.
-
Définissez le chemin vers le répertoire où se trouvent les fichiers PDF d’entrée et de sortie.
-
Définissez le chemin vers le fichier PDF qui sera traité.
-
Chargez le fichier PDF à partir de la variable de chemin et créez un objet Document.
-
Créez un objet FileSpecification pour le fichier XML contenant les métadonnées de la facture. Utilisez la variable de chemin et une chaîne de description pour créer l’objet FileSpecification.
-
Définissez les propriétés
mime_type
etaf_relationship
de l’objet FileSpecification àtext/xml
etALTERNATIVE
, respectivement. -
Ajoutez l’objet fileSpecification à la collection de fichiers intégrés de l’objet document. Cela joint le fichier XML au document PDF en tant que fichier de métadonnées de facture.
-
Convertissez le document PDF au format PDF/A-3A. Utilisez le chemin d’accès au fichier journal, l’énumération
PdfFormat.PDF_A_3A
et l’énumérationConvertErrorAction.DELETE
pour convertir l’objet document. -
Enregistrez le document PDF avec le ZUGFeRD attaché.
import aspose.pdf as ap
# Définir le chemin vers le répertoire où se trouvent les fichiers PDF d'entrée et de sortie
_dataDir = "./"
# Charger le fichier PDF qui sera traité
path = _dataDir + "ZUGFeRD/ZUGFeRD-test.pdf"
document = ap.Document(path)
# Créer un objet FileSpecification pour le fichier XML qui contient les métadonnées de la facture
description = "Métadonnées de facture conformes à la norme ZUGFeRD"
path = _dataDir + "ZUGFeRD/factur-x.xml"
fileSpecification = ap.FileSpecification(path, description)
# Définir le type MIME et les propriétés AFRelationship du fichier intégré
fileSpecification.mime_type = "text/xml"
fileSpecification.af_relationship = ap.AFRelationship.ALTERNATIVE
# Ajouter le fichier intégré à la collection de fichiers intégrés du document PDF
document.embedded_files.add("factur",fileSpecification)
# Convertir le document PDF au format PDF/A-3A
path = _dataDir + "ZUGFeRD/log.xml"
document.convert(path, ap.PdfFormat.PDF_A_3A, ap.ConvertErrorAction.DELETE)
# Enregistrer le document PDF avec le ZUGFeRD attaché
path = _dataDir + "ZUGFeRD/ZUGFeRD-res.pdf"
document.save(path)