Extrahieren Sie Text und Bilder aus PDF-Dokumenten mit Java

PDF ist das am weitesten verbreitete digitale Dokumentenformat. Wir können PDF-Dokumente parsen und Text und Bilder programmgesteuert daraus extrahieren. Es könnte in mehreren Fällen nützlich sein, z. B. bei der Textanalyse, dem Abrufen von Informationen, der Dokumentenkonvertierung usw. In diesem Artikel erfahren Sie, wie Sie mit Java Text und Bilder aus PDF-Dokumenten extrahieren.

Folgende Themen sollen in diesem Artikel behandelt werden:

Java-API zum Extrahieren von Text und Bildern aus PDF-Dokumenten

Zum Extrahieren von Text und Bildern aus PDF-Dokumenten verwenden wir die API GroupDocs.Parser for Java. Es ermöglicht die Extraktion von rohem, formatiertem und strukturiertem Text, Metadaten und Bildern aus Dateien der unterstützten Formate. Bitte entweder die JAR-Datei der API herunterladen oder die folgende pom.xml-Konfiguration in einer Maven-basierten Java-Anwendung hinzufügen.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>22.3</version> 
</dependency>

Extrahieren Sie Text aus PDF-Dokumenten mit Java

Wir können jedes PDF-Dokument parsen und Text extrahieren, indem wir die folgenden Schritte ausführen:

  • Laden Sie zunächst die PDF-Datei mit der Klasse Parser.
  • Rufen Sie als Nächstes die Methode Parser.getText() auf, um Text aus dem geladenen Dokument zu extrahieren.
  • Rufen Sie dann Ergebnisse im Klassenobjekt TextReader ab.
  • Rufen Sie schließlich die Methode TextReader.readToEnd() auf, um alle Zeichen von der aktuellen Position bis zum Ende des Textlesers zu lesen und sie als eine Zeichenfolge zurückzugeben.

Das folgende Codebeispiel zeigt, wie Sie mit Java Text aus einer PDF-Datei extrahieren.

// Dieses Codebeispiel zeigt, wie Sie eine PDF-Datei parsen und Text extrahieren.
// Erstellen Sie eine Instanz der Parser-Klasse
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Extrahieren Sie einen Text in den Reader
try (TextReader reader = parser.getText()) {
    // Drucken Sie einen Text aus dem Dokument
    // Wenn die Textextraktion nicht unterstützt wird, ist ein Reader null
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Extrahieren Sie Text aus PDF-Dokumenten mit Java

Extrahieren Sie Text aus PDF-Dokumenten mit Java

Extrahieren Sie Text von einer bestimmten Seite eines PDF-Dokuments mit Java

Sie können ein PDF-Dokument analysieren und Text von einer bestimmten Seite extrahieren, indem Sie die folgenden einfachen Schritte ausführen:

Das folgende Codebeispiel zeigt, wie Sie mit Java Text aus einer bestimmten Seite extrahieren.

// Dieses Codebeispiel zeigt, wie Sie eine PDF-Datei parsen und Text von einer bestimmten Seite extrahieren.
// Erstellen Sie eine Instanz der Parser-Klasse
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Holen Sie sich die Dokumentinformationen
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Überprüfen Sie, ob das Dokument Seiten hat
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

// Extrahieren Sie einen Text in den Reader
try (TextReader reader = parser.getText(1)) {
    // Drucken Sie einen Text aus dem Dokument
    // Wenn die Textextraktion nicht unterstützt wird, ist ein Reader null
    System.out.println(reader.readToEnd());
}

Die API ermöglicht auch zu prüfen, ob das Dokument die Textextraktionsfunktion unterstützt. Zu diesem Zweck können wir die Eigenschaft Parser.getFeatures().isText() verwenden. Bitte lesen Sie mehr über unterstützte Funktionen.

Bilder aus PDF-Dokumenten mit Java abrufen

Wir können jedes PDF-Dokument parsen und Bilder extrahieren, indem wir die folgenden Schritte ausführen:

  • Laden Sie zunächst die PDF-Datei mit der Klasse Parser.
  • Rufen Sie als Nächstes die Methode Parser.getImages() auf und rufen Sie eine Sammlung von PageImageArea-Objekten aus dem geladenen Dokument ab.
  • Überprüfen Sie dann, ob die Sammlung nicht null ist.
  • Iterieren Sie danach über alle gefundenen Bilder.
  • Zeigen Sie schließlich Bilddetails an.

Das folgende Codebeispiel zeigt, wie Sie mit Java Bilddetails aus einer PDF-Datei abrufen.

// Dieses Codebeispiel zeigt, wie Sie eine PDF-Datei parsen und Bilder abrufen.
// Erstellen Sie eine Instanz der Parser-Klasse
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Bilder extrahieren
Iterable<PageImageArea> images = parser.getImages();

// Überprüfen Sie, ob die Bildextraktion unterstützt wird
if (images == null) {
    System.out.println("Images extraction isn't supported");
    return;
}

// Iterieren Sie über Bilder
for (PageImageArea image : images) {
    // Drucken Sie einen Seitenindex, ein Rechteck und einen Bildtyp:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}
Bilder aus PDF-Dokumenten mit Java abrufen

Bilder aus PDF-Dokumenten mit Java abrufen

Extrahieren Sie Bilder von einer bestimmten Seite eines PDF-Dokuments mit Java

Wir können Bilder von einer bestimmten Seite extrahieren, indem wir die folgenden einfachen Schritte ausführen:

  • Laden Sie zunächst die PDF-Datei mit der Klasse Parser.
  • Rufen Sie als Nächstes Dokumentinformationen mit der Methode Parser.getDocumentInfo() ab.
  • Überprüfen Sie dann, ob IDocumentInfo.getPageCount() nicht Null ist.
  • Rufen Sie danach die Methode Parser.getImages() mit dem Seitenindex auf, um Bilder von dieser bestimmten Seite zu extrahieren.
  • Iterieren Sie schließlich über alle gefundenen Bilder und zeigen Sie Details an.

Das folgende Codebeispiel zeigt, wie Sie mit Java Bilder von einer bestimmten Seite extrahieren.

// Dieses Codebeispiel zeigt, wie Sie eine PDF-Datei parsen und Bilder von einer bestimmten Seite abrufen.
// Erstellen Sie eine Instanz der Parser-Klasse
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Holen Sie sich die Dokumentinformationen
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Überprüfen Sie, ob das Dokument Seiten hat
if (documentInfo.getPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

int pageIndex = 1;

// Iterieren Sie über Bilder
// Wir ignorieren die Nullprüfung, da wir zuvor die Unterstützung der Bildextraktionsfunktion überprüft haben
for (PageImageArea image : parser.getImages(pageIndex)) {
  // Drucken Sie einen Seitenindex, ein Rechteck und einen Bildtyp:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}

Extrahieren und speichern Sie Bilder mit Java in Dateien

Wir können die extrahierten Bilder auch speichern, indem Sie die folgenden Schritte ausführen:

  • Laden Sie zunächst die PDF-Datei mit der Klasse Parser.
  • Rufen Sie als Nächstes die Methode Parser.getImages() auf und rufen Sie eine Sammlung von PageImageArea-Objekten aus dem geladenen Dokument ab.
  • Erstellen Sie dann eine Instanz der Klasse ImageOptions und legen Sie das Bildformat fest.
  • Iterieren Sie danach über alle gefundenen Bilder.
  • Speichern Sie abschließend mit der Methode save(). Als Argumente werden der Pfad der Ausgabedatei und ImageOptions verwendet.

Das folgende Codebeispiel zeigt, wie Bilder mithilfe von Java extrahiert und in Dateien gespeichert werden.

// Dieses Codebeispiel zeigt, wie Bilder und Bilder im Verzeichnis extrahiert werden.
// Erstellen Sie eine Instanz der Parser-Klasse
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Bilder aus Dokument extrahieren
Iterable<PageImageArea> images = parser.getImages();

// Überprüfen Sie, ob die Bildextraktion unterstützt wird
if (images == null) {
    System.out.println("Page images extraction isn't supported");
    return;
}

// Erstellen Sie die Optionen zum Speichern von Bildern im PNG-Format
ImageOptions options = new ImageOptions(ImageFormat.Png);

int imageNumber = 0;

// Iterieren Sie über Bilder
for (PageImageArea image : images)
{
    // Speichern Sie das Bild in der PNG-Datei
    image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
    imageNumber++;
}
Extrahieren und speichern Sie Bilder mit Java in Dateien

Extrahieren und speichern Sie Bilder mit Java in Dateien

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben wir gelernt, wie man:

  • extrahieren Sie den gesamten Text aus einem ganzen PDF-Dokument oder bestimmten Seiten des Dokuments mit Java;
  • extrahieren Sie Bilder programmgesteuert aus einer PDF-Datei;
  • Speichern Sie extrahierte Bilder auf einer lokalen Festplatte.

Außerdem können Sie in der Dokumentation mehr über GroupDocs.Parser for Java API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch