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

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

Cómo extraer archivos adjuntos mediante la biblioteca Java

Para extraer archivos adjuntos, utilizaremos la API Aspose.PDF for Java, que es una API de conversión para la plataforma Java con muchas funciones, potente y fácil de usar. Puede descargar su última versión directamente desde Maven e instalarla en su proyecto basado en Maven añadiendo las siguientes configuraciones apom.xml.

Repository

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java AP</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>

Dependency

<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>version of aspose-pdf API</version>
</dependency>

Extraer archivos adjuntos del PDF Java


Necesita Aspose.PDF for Java 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


// Open document
Document pdfDocument = new Document(_dataDir+"input.pdf");
// Get particular embedded file
FileSpecification fileSpecification = pdfDocument.getEmbeddedFiles().get_Item(1);
// Get the file properties
System.out.printf("Name: - " + fileSpecification.getName());
System.out.printf("\nDescription: - " + fileSpecification.getDescription());
System.out.printf("\nMime Type: - " + fileSpecification.getMIMEType());
// Get attachment form PDF file
try {
    InputStream input = fileSpecification.getContents();
    File file = new File(fileSpecification.getName());
    // Create path for file from pdf
    file.getParentFile().mkdirs();
    // Create and extract file from pdf
    java.io.FileOutputStream output = 
        new java.io.FileOutputStream(
            fileSpecification.getName(), 
            true);
    byte[] buffer = new byte[4096];
    int n = 0;
    while (-1 != (n = input.read(buffer)))
        output.write(buffer, 0, n);
    // Close InputStream object
    input.close();
    output.close();
} 
catch (IOException e) {
    e.printStackTrace();
}
// Close Document object
pdfDocument.dispose();