Extraire les pièces jointes PDF

Le fichier PDF est composé de texte et de graphiques et peut contenir des fichiers entiers en pièces jointes. Cela rend l’échange d’ensembles de documents plus facile et plus fiable. Le volet Pièces jointes vous offre un emplacement central pour afficher, insérer, supprimer et exporter des pièces jointes. Veuillez également noter que si vous déplacez le fichier PDF vers un nouvel emplacement, les pièces jointes qu’il contient sont également déplacées avec lui. Les pièces jointes peuvent inclure des liens vers ou depuis le document parent ou vers d’autres pièces jointes. Veuillez ne pas confondre les commentaires joints avec les pièces jointes.

Dans cet article, nous allons discuter en détail de la façon dont nous pouvons lire les informations concernant les pièces jointes dans les documents PDF ainsi que de la façon dont nous pouvons télécharger des pièces jointes à partir d’un PDF à l’aide de Python. Aucun téléchargement ni installation de logiciel particulier n’est requis et toutes les opérations requises sont effectuées dans le cloud.

API de traitement PDF

Aspose.PDF Cloud est notre API REST offrant les capacités de créer, d’éditer et de transformer divers formats en PDF ainsi que de restituer des fichiers PDF dans des formats tels que XLSX, PPTX, DOCX, EPUB, HTML, JPEG, etc. et bien plus encore. Grâce à l’architecture REST, l’API est accessible sur n’importe quelle plateforme. Par conséquent, vous pouvez implémenter des capacités de traitement PDF dans des applications de bureau, Web, mobiles, Cloud et hybrides.

SDK Python pour le traitement PDF

Afin de faciliter encore plus la tâche de nos clients, nous avons créé des SDK de programmation spécifiques pour que vous puissiez bénéficier de toutes les fonctionnalités de traitement PDF dans le langage de votre choix. De même, pour faciliter la tâche des développeurs Python, nous avons créé un SDK de programmation Python nommé Aspose.PDF Cloud SDK for Python qui est un wrapper autour de l’API Aspose.PDF Cloud. Pour commencer, la première étape consiste à l’installer. Le SDK est disponible en téléchargement gratuit sur PIP et le référentiel GitHub. Exécutez maintenant la commande suivante sur le terminal/l’invite de commande pour installer la dernière version du SDK sur le système.

pip install asposepdfcloud

IDE PyCharm

Si vous utilisez PyCharm IDE, vous pouvez ajouter directement le SDK en tant que dépendance dans votre projet.

Fichier ->Paramètres ->Projet ->Interpréteur Python ->asposepdfcloud

légende

Image 1:- PyCharm settings option.

Paquet Python Aspose.PDF

Image 2 : Package Python Cloud Aspose.Pdf.

Compte Cloud Dashboard gratuit

Après l’installation, la prochaine étape importante est un abonnement gratuit à nos services cloud via tableau de bord Aspose.Cloud. Le but de cet abonnement est de permettre uniquement aux personnes autorisées d’accéder à nos services de traitement de fichiers. Si vous avez un compte GitHub ou Google, inscrivez-vous simplement ou cliquez sur le bouton Créer un nouveau compte et fournissez les informations requises. Connectez-vous maintenant au tableau de bord à l’aide des informations d’identification et développez la section Applications du tableau de bord et faites défiler vers le bas jusqu’à la section Informations d’identification du client pour voir les détails de l’ID client et du secret client.

Informations d'identification du client

Image 3 : Informations d’identification du client sur le tableau de bord Aspose.Cloud.

Lire les informations sur les pièces jointes du PDF

Veuillez suivre les instructions ci-dessous pour lire les informations des pièces jointes dans le document PDF.

  • Tout d’abord, nous devons créer une instance de la classe ApiClient tout en fournissant l’ID client et le secret client comme arguments.
  • Deuxièmement, créez une instance de la classe PdfApi qui prend l’objet ApiClient comme argument d’entrée.
  • Appelez maintenant la méthode getdocumentattachments(…) de PdfApi pour récupérer les détails des pièces jointes PDF.
def readAttachmentDetails():
    try:
        #Client credentials
        client_secret = "1c9379bb7d701c26cc87e741a29987bb"
        client_id = "bbf94a2c-6d7e-4020-b4d2-b9809741374e"

        #initialize PdfApi client instance using client credetials
        pdf_api_client = asposepdfcloud.api_client.ApiClient(client_secret, client_id)

        # créer une instance PdfApi en passant PdfApiClient comme argument
        pdf_api = PdfApi(pdf_api_client)

        #source image file
        input_file = 'PdfWithEmbeddedFiles.pdf'
        
        # appeler l'API pour extraire les détails de la pièce jointe
        response = pdf_api.get_document_attachments(name = input_file)
        print(response)
        # imprimer un message dans la console (facultatif)
        print('PDF Attachment details successfully retrieved !')    
    except ApiException as e:
        print("Exception while calling PdfApi: {0}".format(e))
        print("Code:" + str(e.code))
        print("Message:" + e.message)

Pour votre référence, l’exemple de document PDF utilisé dans l’exemple ci-dessus peut être téléchargé à partir de PdfWithEmbeddedFiles.pdf.

Lire les informations spécifiques sur les pièces jointes

L’API nous permet également de lire les informations de pièces jointes particulières dans le document PDF. Pour cela, essayez d’utiliser la méthode GetDocumentAttachmentByIndex. Veuillez voir ci-dessous les détails de la première pièce jointe récupérée.

{'attachment': {'check_sum': '33DCE2EE8BD095A3C4E2A67058104D35',
                'creation_date': '11/24/2008 02:02:36.000 PM',
                'description': None,
                'links': [{'href': '/PdfWithEmbeddedFiles.pdf/attachments/1',
                           'rel': 'self',
                           'title': None,
                           'type': None}],
                'mime_type': 'application/pdf',
                'modification_date': '05/03/2007 10:37:41.000 AM',
                'name': 'example1.pdf',
                'size': 10984},
 'code': 200,
 'status': 'OK'}

Télécharger la pièce jointe spécifique à partir du PDF

Veuillez suivre les instructions ci-dessous pour télécharger des pièces jointes spécifiques du document PDF.

  • Tout d’abord, nous devons créer une instance de la classe ApiClient tout en fournissant l’ID client et le secret client comme arguments.
  • Deuxièmement, créez une instance de la classe PdfApi qui prend l’objet ApiClient comme argument d’entrée.
  • Appelez maintenant la méthode GetDownloadDocumentAttachmentByIndex(…) pour télécharger la pièce jointe à partir du fichier PDF.
def downloadAttachment():
    try:
        #Client credentials
        client_secret = "1c9379bb7d701c26cc87e741a29987bb"
        client_id = "bbf94a2c-6d7e-4020-b4d2-b9809741374e"

        #initialize PdfApi client instance using client credetials
        pdf_api_client = asposepdfcloud.api_client.ApiClient(client_secret, client_id)

        # créer une instance PdfApi en passant PdfApiClient comme argument
        pdf_api = PdfApi(pdf_api_client)

        #source image file
        input_file = 'PdfWithEmbeddedFiles.pdf'
        
        # appeler l'API pour télécharger la première pièce jointe du fichier PDF
        response = pdf_api.get_download_document_attachment_by_index(name = input_file, attachment_index=1)
        print(response)
        # imprimer un message dans la console (facultatif)
        print('PDF Attachment successfully downloaded !')    
    except ApiException as e:
        print("Exception while calling PdfApi: {0}".format(e))
        print("Code:" + str(e.code))
        print("Message:" + e.message)

Lire les informations sur les pièces jointes à l’aide de la commande cURL

Les API REST sont facilement accessibles via les commandes cURL et nous pouvons utiliser une application de terminal simple pour les exécuter. Étant donné qu’Aspose.PDF Cloud est développé selon l’architecture REST, nous pouvons également y accéder via les commandes cURL. Cependant, comme condition préalable, nous devons générer un jeton Web JSON (JWT) basé sur vos informations d’identification client individuelles spécifiées sur le tableau de bord Aspose.Cloud. C’est obligatoire car nos API ne sont accessibles qu’aux utilisateurs enregistrés. Veuillez exécuter la commande suivante pour générer le jeton JWT.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bbf94a2c-6d7e-4020-b4d2-b9809741374e&client_secret=1c9379bb7d701c26cc87e741a29987bb" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Maintenant que nous avons le jeton JWT, nous pouvons exécuter la commande suivante pour récupérer 7 informations sur des pièces jointes spécifiques à partir de documents PDF.

curl -v -X GET "https://api.aspose.cloud/v3.0/pdf/PdfWithEmbeddedFiles.pdf/attachments/1" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Télécharger une pièce jointe spécifique à l’aide de la commande cURL

Veuillez exécuter la commande suivante pour télécharger la 2ème pièce jointe du fichier PDF et l’enregistrer sur le lecteur local.

curl -v -X GET "https://api.aspose.cloud/v3.0/pdf/PdfWithEmbeddedFiles.pdf/attachments/2/download" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o Attachment.txt

Conclusion

Cet article explique en détail les étapes à suivre pour lire et télécharger des pièces jointes à partir de documents PDF. Nous avons exploré les étapes à l’aide d’extraits de code Python ainsi qu’à l’aide des commandes cURL. Outre le traitement des pièces jointes, l’API fournit également une multitude de fonctionnalités liées à d’autres éléments des fichiers PDF et leurs détails peuvent être trouvés dans le Guide du développeur. De plus, le code source complet d’Aspose.PDF Cloud SDK pour Python est disponible en téléchargement sur GitHub. Si vous rencontrez des problèmes lors de l’utilisation de l’API ou si vous avez d’autres questions, n’hésitez pas à nous contacter via le Forum d’assistance produit gratuit.

Articles connexes

Nous vous recommandons également de visiter les liens suivants pour en savoir plus sur :