Estrai gli allegati dal PDF tramite Java

Come estrarre allegati da PDF a livello di codice con Java

Come estrarre gli allegati utilizzando la libreria Java

Per estrarre gli allegati, useremo Aspose.PDF for Java API che è un’API di conversione ricca di funzionalità, potente e facile da usare per la piattaforma Java. Puoi scaricare la sua ultima versione direttamente da Maven e installarla all’interno del tuo progetto basato su Maven aggiungendo le seguenti configurazioni a pom.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>

Estrai allegati dal PDF Java


È necessario Aspose.PDF for Java per provare il codice nel proprio ambiente.

  1. Ottieni la raccolta di file incorporati.
  2. Ottieni il conteggio dei file incorporati.
  3. Scorri la raccolta per ottenere tutti gli allegati.
  4. Verificare se l’oggetto parametro contiene i parametri.
  5. Ottieni l’allegato e scrivi su file o stream.

Estrai allegato dal 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();