Extraire les pièces jointes d’un document PDF via Python

Comment extraire des pièces jointes d’un PDF par programme avec Python

Comment extraire des pièces jointes à l'aide de la bibliothèque Python for .NET

Afin d’extraire les pièces jointes dans un fichier PDF, nous utiliserons l’API Aspose.PDF for .NET qui est une API de manipulation de documents riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme python-net. Ouvrez le gestionnaire de packages NuGet, recherchez Aspose.pdf et installez. Vous pouvez également utiliser la commande suivante depuis la console du gestionnaire de packages.

Python Package Manager Console

pip install aspose-pdf

Extraire les pièces jointes du PDF Python


Vous avez besoin de Aspose.PDF pour .NET pour essayer le code dans votre environnement.

  1. Obtenez la collection de fichiers intégrés.
  2. Obtenez le nombre de fichiers intégrés.
  3. Parcourez la collection pour obtenir toutes les pièces jointes.
  4. Vérifiez si l’objet Parameter contient les paramètres.
  5. Récupérez la pièce jointe et écrivez-la dans un fichier ou un flux.

Extraire la pièce jointe d'un document PDF

 def attachment_extract(self, infile):

        path_infile = self.dataDir + infile

        # Open document
        pdfDocument = Document(path_infile)

        # Get embedded files collection
        embeddedFiles = pdfDocument.EmbeddedFiles

        # Get count of the embedded files
        print ( "Total files : %d " % (embeddedFiles.Count))

        count = 1

        # Loop through the collection to get all the attachments

        for fileSpecification in embeddedFiles:
            print("Name: " + fileSpecification.Name)
            print("Description: " + fileSpecification.Description)
            print("Mime Type: " + fileSpecification.MIMEType)

            # Check if parameter object contains the parameters
            if (fileSpecification.Params != None):
                print("CheckSum: " + fileSpecification.Params.CheckSum)
                print("Creation Date: " + fileSpecification.Params.CreationDate)
                print("Modification Date " + fileSpecification.Params.ModDate)
                print("Size: " + fileSpecification.Params.Size)

                # Get the attachment and write to file or stream
                File.WriteAllBytes(self.dataDir + count + "_out" + ".txt", fileSpecification.Contents)

                count+=1