Tabelle aus PDF in Java extrahieren

Tabelle aus PDF in Java extrahieren

Vor kurzem haben wir einen Artikel veröffentlicht, in dem es darum geht, Text aus einer PDF-Datei in Java programmgesteuert zu extrahieren. In diesem Blogbeitrag erfahren Sie, wie Sie mit dieser Java API für PDF Tabellen aus PDF in Java extrahieren. Diese Bibliothek bietet leistungsstarke Funktionen zum Analysieren und Bearbeiten von PDF-Dokumenten. Darüber hinaus können Sie die Datenextraktion automatisieren, indem Sie mit dieser Bibliothek einen PDF-Tabellenextraktor erstellen. Bitte stellen Sie jedoch sicher, dass Sie Java auf Ihrem lokalen Rechner installiert haben, bevor Sie fortfahren.

Folgende Punkte sollen in diesem Leitfaden behandelt werden:

PDF-Tabellenextraktor - API-Installation

Der Installationsprozess dieser Bibliothek ist einfach und unkompliziert. Tatsächlich können Sie die API entweder herunterladen oder sie mit den folgenden Maven-Konfigurationen installieren.

 <repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <classifier>jdk17</classifier>
</dependency>

Tabelle aus PDF in Java extrahieren

Sobald die API installiert ist, können Sie mit dem Schreiben von Code beginnen, um programmgesteuert einen PDF-Tabellenextraktor zu erstellen.

Sie können die Schritte und das unten erwähnte Code-Snippet befolgen:

  1. Erstellen Sie ein Objekt der Klasse Document und laden Sie die PDF-Quelldatei.
  2. Instanziieren Sie eine Instanz der Klasse TableAbsorber, die eine Suche durchführt und Zugriff auf Suchergebnisse bereitstellt.
  3. Durchlaufen Sie die Seiten des PDF-Dokuments, indem Sie die Methode getPages aufrufen.
  4. Rufen Sie die Methode visit auf, um die Tabelle aus der Seite zu extrahieren.
  5. Rufen Sie die Methode getTableList auf, die eine schreibgeschützte IList mit gefundenen Tabellen zurückgibt.
  6. Rufen Sie die Zeilen ab, indem Sie die Methode getRowList aufrufen. Durchlaufen Sie die Liste der Zeilen.
  7. Iterieren Sie durch die Liste der Zellen, indem Sie die Methode getCellList aufrufen.
  8. Rufen Sie die Methode getTextFragments auf, um eine Sammlung von TextFragment-Objekten abzurufen, die den in der Zelle enthaltenen Text beschreiben.
  9. Rufen Sie die Methode getSegments auf, die Textsegmente für das aktuelle TextFragment abruft.
  10. Drucken Sie die Ergebnisse aus.

Kopieren Sie den folgenden Code und fügen Sie ihn in Ihre Hauptdatei ein:

String filePath = "table.pdf";
// Erstellen Sie ein Objekt der Document-Klasse und laden Sie die PDF-Quelldatei 
Document pdfDocument = new Document(filePath);
// Instanziieren Sie eine Instanz der TableAbsorber-Klasse, die die Suche durchführt und Zugriff auf Suchergebnisse bereitstellt  
TableAbsorber absorber = new TableAbsorber();
// Durchlaufen Sie die Seiten des PDF-Dokuments, indem Sie die Methode getPages aufrufen 
for (Page page : pdfDocument.getPages()) {
    // Rufen Sie die Visit-Methode auf, um eine Tabelle aus der Seite zu extrahieren 
        absorber.visit(page);
        // Rufen Sie die getTableList-Methode auf, die eine schreibgeschützte IList mit gefundenen Tabellen zurückgibt 
        for (AbsorbedTable table : absorber.getTableList()) {
                System.out.println("Table");
                // Rufen Sie die Zeilen ab, indem Sie die getRowList-Methode aufrufen Iterate through list of rows  
                for (AbsorbedRow row : table.getRowList()) {
                        // Iterieren Sie durch die Liste der Zellen, indem Sie die getCellList-Methode aufrufen 
                        for (AbsorbedCell cell : row.getCellList()) {
                            // Rufen Sie die getTextFragments-Methode auf, um eine Sammlung von TextFragment-Objekten abzurufen, die den in der Zelle enthaltenen Text beschreiben 
                                for (TextFragment fragment : cell.getTextFragments()) {
                                        StringBuilder sb = new StringBuilder();
                                        // Rufen Sie die getSegments-Methode auf, die Textsegmente für das aktuelle TextFragment abruft. 
                                        for (TextSegment seg : fragment.getSegments())
                                                sb.append(seg.getText());
                                        System.out.print(sb.toString() + "|");
                                }
                        }
                        System.out.println();
                }
        }
}

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz in Anspruch nehmen, um die API ohne Evaluierungseinschränkungen zu testen.

Zusammenfassen

Damit sind wir am Ende dieses Blogbeitrags angelangt. Sie haben gelernt, wie man in Java programmgesteuert Tabellen aus PDF-Dateien extrahiert. Dieser Leitfaden wird Ihnen wirklich helfen, wenn Sie einen PDF-Tabellenextraktor für Ihre Geschäftsanwendung erstellen möchten. Außerdem können Sie die Dokumentation besuchen, um die anderen Funktionen kennenzulernen.

Außerdem empfehlen wir Ihnen, unserem Leitfaden „Erste Schritte“ zu folgen.

Schließlich schreibt conholdate.com neue Blogbeiträge. Bitte bleiben Sie daher in Kontakt, um die neuesten Updates zu erhalten.

Stelle eine Frage

Sie können uns Ihre Fragen oder Anliegen in unserem Forum mitteilen.

Häufig gestellte Fragen

Kann ich Tabellen aus PDF extrahieren?

Bitte besuchen Sie diesen link, um die Schritte und das Code-Snippet zu erfahren, das eine Tabelle programmgesteuert aus einem PDF-Dokument extrahiert

Siehe auch