Extrahiere Anlagen aus dem PDF-Dokument über Java

Wie man mit Java Dateianhänge programmgesteuert aus PDF extrahiert

So extrahieren Sie Anlagen mithilfe der Java Bibliothek

Um Attachments zu extrahieren, verwenden wir die API Aspose.PDF for Java, eine funktionsreiche, leistungsstarke und einfach zu verwendende Konvertierungs-API für die Java-Plattform. Sie können die neueste Version direkt von Maven herunterladen und in Ihrem Maven-basierten Projekt installieren, indem Sie die folgenden Konfigurationen zu pom.xml hinzufügen.

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>

Extrahiere Anlagen aus PDF Java


Sie benötigen Aspose.PDF für Java, um den Code in Ihrer Umgebung auszuprobieren.

  1. Holen Sie sich eingebettete Dateisammlung.
  2. Ruft die Anzahl der eingebetteten Dateien ab.
  3. Blättern Sie durch die Sammlung, um alle Anhänge zu erhalten.
  4. Prüfen Sie, ob das Parameterobjekt die Parameter enthält.
  5. Holen Sie sich den Anhang und schreiben Sie in eine Datei oder einen Stream.

Anhang aus PDF-Dokument extrahieren


    // 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();