Извлечение вложений из PDF-документа с помощью Python

Как программно извлекать вложения из PDF с помощью Python

Как извлечь вложения с помощью библиотеки Python for .NET

Чтобы извлечь вложения в PDF-файл, мы будем использовать Aspose.PDF для.NET API, который представляет собой многофункциональный, мощный и простой в использовании API для работы с документами для платформы python-net. Откройте менеджер пакетов NuGet, найдите Aspose.pdf и установите. Вы также можете использовать следующую команду из консоли Package Manager.

Python Package Manager Console

pip install aspose-pdf

Извлечение вложений из PDF Python


Вам нужен Aspose.PDF for .NET, чтобы опробовать код в своей среде.

  1. Получите коллекцию встроенных файлов.
  2. Получите количество встроенных файлов.
  3. Прокрутите коллекцию, чтобы получить все вложения.
  4. Проверьте, содержит ли объект parameter параметры.
  5. Получите вложение и запишите его в файл или поток.

Извлечь вложение из 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