Daten aus Tabelle in PDF Java extrahieren

PDF ist heutzutage eines der vorherrschenden Dokumentenformate. Es unterstützt Text, Grafiken, Tabellen, Anmerkungen und eine Reihe anderer Elemente. In bestimmten Fällen müssen Sie möglicherweise Daten aus den Tabellen in PDF Dokumenten wie Rechnungen extrahieren. Um dies programmgesteuert zu erreichen, behandelt der Artikel das Extrahieren von Daten aus Tabellen in PDF mit Java.

Extrahieren Sie Daten aus Tabellen in PDF - Java API

Aspose.PDF for Java ist eine funktionsreiche API zum Erstellen und Bearbeiten von PDF Dokumenten. Wir werden diese API verwenden, um die Daten aus Tabellen in PDF Dokumenten zu extrahieren. Sie können die JAR Datei der API entweder herunterladen oder mithilfe der folgenden Maven-Konfigurationen in Ihrer Java Anwendung 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>
    <version>21.9</version>
</dependency>

Datenextraktion aus Tabellen in PDF in Java

Im Folgenden sind die Schritte zum Extrahieren von Daten aus Tabellen in einer PDF Datei mit Java aufgeführt.

Das folgende Codebeispiel zeigt, wie Sie mit Java Text aus Tabellen in PDF extrahieren.

// Quell-PDF Dokument laden
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Erstellen Sie einen Tabellenabsrober
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();

// Seiten scannen
for (com.aspose.pdf.Page page : pdfDocument.getPages()) {
    
    // Seite besuchen
    absorber.visit(page);
  
    // Durch Tabellen iterieren
    for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
        System.out.println("Table");
        
        // Iteriere durch die Liste der Zeilen
        for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
            
            // Iteriere durch die Liste der Zellen
            for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
                
                // Durch Textfragmente iterieren
                for (com.aspose.pdf.TextFragment fragment : cell.getTextFragments()) {
                    StringBuilder sb = new StringBuilder();
                    for (com.aspose.pdf.TextSegment seg : fragment.getSegments())
                        sb.append(seg.getText());
                    System.out.print(sb.toString() + "|");
                }
            }
            System.out.println();
        }
    }
}

Java: Tabellendaten aus einem bestimmten Bereich einer PDF-Seite extrahieren

Im Folgenden sind die Schritte zum Extrahieren einer Tabelle aus einem bestimmten Teil der Seite in einer PDF Datei mit Java aufgeführt.

Das folgende Codebeispiel zeigt, wie Tabellen aus einem bestimmten Bereich der PDF-Seite extrahiert werden.

// Quell-PDF Dokument laden
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Holen Sie sich den Verweis auf die gewünschte Seite
com.aspose.pdf.Page page = pdfDocument.getPages().get_Item(1);

// Erstellen Sie einen Anmerkungsselektor
com.aspose.pdf.AnnotationSelector annotationSelector = new com.aspose.pdf.AnnotationSelector(
        new com.aspose.pdf.SquareAnnotation(page, com.aspose.pdf.Rectangle.getTrivial()));

// Liste der Anmerkungen erhalten
java.util.List<com.aspose.pdf.Annotation> list = annotationSelector.getSelected();
if (list.size() == 0) {
    System.out.println("Marked tables not found..");
    return;
}

// Erstellen Sie eine quadratische Anmerkung
com.aspose.pdf.SquareAnnotation squareAnnotation = (com.aspose.pdf.SquareAnnotation) list.get(0);

// Tabellenabsorber erstellen und Seite besuchen
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
absorber.visit(page);

// Durch Tabellen iterieren
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
    {
        // Überprüfen Sie, ob die Tabelle vorhanden ist
        boolean isInRegion = (squareAnnotation.getRect().getLLX() < table.getRectangle().getLLX())
                && (squareAnnotation.getRect().getLLY() < table.getRectangle().getLLY())
                && (squareAnnotation.getRect().getURX() > table.getRectangle().getURX())
                && (squareAnnotation.getRect().getURY() > table.getRectangle().getURY());

        if (isInRegion) {
            for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
                {
                    for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
                        for (com.aspose.pdf.TextFragment fragment : cell.getTextFragments()) {
                            StringBuilder sb = new StringBuilder();
                            for (com.aspose.pdf.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 Aspose.PDF for Java ohne Evaluierungseinschränkungen mit einer temporären Lizenz verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit Java Daten aus Tabellen in einem PDF extrahieren. Darüber hinaus behandelte der Artikel das Extrahieren von Tabellen aus einem bestimmten Bereich der Seite in PDF. Außerdem können Sie in der Dokumentation mehr über Aspose.PDF for Java erfahren. Darüber hinaus können Sie Ihre Fragen über unser Forum stellen.

Siehe auch