Création d'un PDF conforme PDF/3-A et attachement d'une facture ZUGFeRD en Python
Contents
[
Hide
]
Attacher ZUGFeRD au PDF
Nous recommandons les étapes suivantes pour joindre ZUGFeRD au PDF :
- Importez la bibliothèque Aspose.PDF et donnez‑lui un alias ap pour plus de commodité.
- Définissez le chemin du répertoire où se trouvent les fichiers PDF d’entrée et de sortie.
- Définissez le chemin du 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éfinir le
mime_typeet leaf_relationshippropriétés de l’objet FileSpecification àtext/xmletALTERNATIVE, respectivement. - Ajoutez l’objet fileSpecification à la collection de fichiers intégrés de l’objet document. Cela attache le fichier XML au document PDF en tant que fichier de métadonnées de facture.
- Convertir le document PDF au format PDF/A-3A. Utilisez le chemin vers le fichier journal, le
PdfFormat.PDF_A_3Aénumération, et leConvertErrorAction.DELETEénumération pour convertir l’objet Document. - Enregistrez le document PDF avec le ZUGFeRD attaché.
import sys
import os
import aspose.pdf as ap
def attach_invoice_zugferd_format(infile, invoice, outfile):
document = ap.Document(infile)
# Create a FileSpecification object for the XML file that contains the invoice metadata
description = "Invoice metadata conforming to ZUGFeRD standard"
file_specification = ap.FileSpecification(invoice, description)
# Set the MIME type and the AFRelationship properties of the embedded file
file_specification.mime_type = "text/xml"
file_specification.af_relationship = ap.AFRelationship.ALTERNATIVE
# Add the embedded file to the PDF document's embedded files collection
document.embedded_files.add("factur", file_specification)
# Convert the PDF document to the PDF/A-3A format
log_path = outfile.replace(".pdf", "_log.xml")
document.convert(log_path, ap.PdfFormat.PDF_A_3A, ap.ConvertErrorAction.DELETE)
document.save(outfile)