Extraiga los archivos adjuntos de un PDF a través de Python

Cómo extraer archivos adjuntos de un PDF mediante programación con Python

Cómo extraer archivos adjuntos mediante la biblioteca Python for .NET

Para extraer archivos adjuntos en un archivo PDF, utilizaremos la API Aspose.PDF for .NET, que es una API de manipulación de documentos rica en funciones, potente y fácil de usar para la plataforma python-net. Abra el administrador de paquetes NuGet, busque Aspose.pdf e instálelo. También puede usar el siguiente comando desde la consola de Package Manager.

Console

pip install aspose-pdf

Extraer archivos adjuntos del PDF Python


Necesita Aspose.PDF for .NET para probar el código en su entorno.

  1. Obtenga una colección de archivos incrustados.
  2. Obtenga el recuento de los archivos incrustados.
  3. Recorre la colección para obtener todos los archivos adjuntos.
  4. Compruebe si el objeto parámetro contiene los parámetros.
  5. Obtenga el archivo adjunto y escriba en un archivo o transmisión.

Extraer el archivo adjunto de un documento PDF

import aspose.pdf as apdf

from os import path

path_infile = path.join(self.data_dir, infile)
# Open document
document = apdf.Document(path_infile)

# Get count of the embedded files
print(f"Total files : {len(document.embedded_files)}")

# Loop through the collection to get all the attachments
for file_specification in document.embedded_files:
    print(f"Name: {file_specification.name}")
    print(f"Description: {file_specification.description}")
    print(f"Mime Type: {file_specification.mime_type}")

    # Check if parameter object contains the parameters
    if file_specification.params is not None:
        print(f"CheckSum: {file_specification.params.check_sum}")
        print(f"Creation Date: {file_specification.params.creation_date}")
        print(f"Modification Date: {file_specification.params.mod_date}")
        print(f"Size: {file_specification.params.size}")

    # Get the attachment and write to file
    with open(
        path.join(self.data_dir, "export_" + file_specification.name), "wb"
    ) as f:
        f.write(file_specification.contents.readall())