Wie man Java-PDF-Tabellenerfassung mit GroupDocs.Parser durchführt

Tabellen aus PDF‑Dateien zu extrahieren ist ein häufiges Bedürfnis, wenn statische Dokumente in strukturierte Daten umgewandelt werden sollen. In diesem Tutorial lernen Sie wie man Tabellen aus PDFs mit der GroupDocs.Parser‑Bibliothek für Java extrahiert. Wir behandeln die Umgebungseinrichtung, die Tabellengitter‑Konfiguration und wie man PDF‑Tabellen als CSV exportiert für nachgelagerte Verarbeitung. Am Ende können Sie robuste Tabellenerfassung in jede Java‑basierte Datenpipeline integrieren.

Schnelle Antworten

  • Was ist die primäre Bibliothek? GroupDocs.Parser for Java
  • Kann ich Tabellen aus gescannten PDFs extrahieren? Nur nach OCR; siehe Hinweis „extract tables scanned pdf“ unten
  • Benötige ich eine Lizenz? Eine Testlizenz funktioniert für die Entwicklung; eine Volllizenz ist für die Produktion erforderlich
  • Welche Java-Version ist erforderlich? Java 8 oder höher
  • Wird Batch‑Verarbeitung unterstützt? Ja – die API ist für großskalige Extraktion optimiert

Was ist Java-PDF-Tabellenerfassung?

Java-PDF-Tabellenerfassung ist der Prozess, tabellarische Strukturen in einem PDF programmgesteuert zu lokalisieren, Zellgrenzen zu interpretieren und den Text in einem maschinenlesbaren Format wie CSV oder Excel abzurufen. Dies ermöglicht nachgelagerte Analysen, Berichte oder Migrationsaufgaben ohne manuelles Kopieren‑Einfügen.

Warum GroupDocs.Parser für Java-PDF-Tabellenerfassung verwenden?

GroupDocs.Parser liefert präzise Layout‑Erkennung für über 50 + Eingabe‑ und Ausgabeformate und kann mehrseitige PDFs verarbeiten, während der Speicherverbrauch unter 200 MB bleibt. Es unterstützt Batch‑Jobs, bietet eine einfache Maven‑Abhängigkeit und integriert sich nahtlos in GroupDocs OCR für gescannte Dokumente.

Voraussetzungen

Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Java 8+ installiert und in Ihrer IDE oder Ihrem Build‑Tool konfiguriert.
  • Maven für das Abhängigkeitsmanagement.
  • Zugriff auf eine GroupDocs.Parser‑Lizenz (Test‑ oder Vollversion).

Erforderliche Bibliotheken und Abhängigkeiten

Sie benötigen:

  • GroupDocs.Parser für Java Bibliothek (Version 25.5 oder neuer).
  • Maven auf Ihrem System installiert für das Abhängigkeitsmanagement.

Umgebung einrichten

Stellen Sie sicher, dass Ihre Entwicklungsumgebung mit einer kompatiblen Java‑Version (Java 8 oder höher) eingerichtet ist.

Wissensvoraussetzungen

Grundlegendes Verständnis der Java‑Programmierung und Vertrautheit mit dem Umgang mit Dateien in Java sind vorteilhaft.

Einrichtung von GroupDocs.Parser für Java

Um GroupDocs.Parser zu nutzen, integrieren Sie es wie folgt in Ihr Projekt:

Maven‑Konfiguration
Fügen Sie die folgende Konfiguration zu Ihrer pom.xml‑Datei hinzu, um GroupDocs.Parser als Abhängigkeit einzubinden:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

Direkter Download
Laden Sie alternativ die neueste Version von GroupDocs.Parser für Java von GroupDocs releases herunter.

Lizenzbeschaffung

Starten Sie mit einer kostenlosen Testversion, erhalten Sie eine temporäre Lizenz oder erwerben Sie eine Volllizenz. Besuchen Sie die GroupDocs licensing page für Details.

Grundlegende Initialisierung und Einrichtung

Initialisieren Sie GroupDocs.Parser in Ihrer Java‑Anwendung wie folgt:

import com.groupdocs.parser.Parser;

public class DocumentParser {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        try (Parser parser = new Parser(filePath)) {
            // Ready to perform operations on the document
        } catch (Exception e) {
            System.err.println("Error creating Parser instance: " + e.getMessage());
        }
    }
}

Implementierungsleitfaden

Wir gehen jede Funktion durch, die Sie beherrschen müssen, wie man Tabellen aus einem PDF extrahiert.

Feature 1: Dokumentenparsing mit GroupDocs

Übersicht
Um mit einem PDF‑Dokument zu interagieren, erstellen Sie eine Instanz der Parser‑Klasse.
Parser ist die Einstiegsklasse zum Lesen von PDF‑Inhalten in GroupDocs.Parser. Dies ermöglicht verschiedene Operationen am Dokument.

Erstellen einer Parser‑Instanz
Die Parser‑Klasse ist der Einstiegspunkt zum Lesen von PDF‑Inhalten in GroupDocs.Parser. Sie lädt das Dokument in den Speicher und stellt Methoden zum Extrahieren von Text, Tabellen und anderen Strukturen bereit.

import com.groupdocs.parser.Parser;

public class CreateParserInstance {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        try (Parser parser = new Parser(filePath)) {
            // Document is ready for operations
        } catch (Exception e) {
            System.err.println("Error creating Parser instance: " + e.getMessage());
        }
    }
}

Feature 2: Überprüfung der Tabellenerfassungsfähigkeit

Übersicht
Bevor Tabellen extrahiert werden, prüfen Sie, ob das PDF die Tabellenerfassung unterstützt.

Überprüfung der Tabellenunterstützung
Die Methode hasTables() gibt einen booleschen Wert zurück, der angibt, ob das geladene PDF erkennbare tabellarische Daten enthält.
hasTables() prüft, ob das Dokument Tabellen enthält.

import com.groupdocs.parser.Parser;

public class CheckTableSupport {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        try (Parser parser = new Parser(filePath)) {
            boolean isTablesSupported = parser.getFeatures().isTables();
            
            if (!isTablesSupported) {
                System.out.println("Document doesn't support tables extraction.");
            }
        } catch (Exception e) {
            System.err.println("Error checking table extraction capability: " + e.getMessage());
        }
    }
}

Feature 3: Tabellengitter‑Konfiguration

Übersicht
Die Konfiguration des Layouts Ihrer Tabellen kann die Genauigkeit der Datenerfassung verbessern.

Einrichten des Tabellengitters
TemplateTableLayout definiert die erwarteten Spaltenbreiten und Zeilenhöhen.
TemplateTableLayout legt benutzerdefinierte Spaltenbreiten und Zeilenhöhen für die Tabellenerkennung fest. Das Anpassen dieser Werte hilft der Engine, Zellgrenzen mit dem visuellen Raster abzugleichen.

import com.groupdocs.parser.templates.TemplateTableLayout;
import java.util.Arrays;

public class ConfigureTableLayout {
    public static void main(String[] args) {
        final double[] columnWidths = {50.0, 95.0, 275.0, 415.0, 485.0, 545.0};
        final double[] rowHeights = {325.0, 340.0, 365.0, 395.0};

        TemplateTableLayout layout = new TemplateTableLayout(
                Arrays.asList(columnWidths), 
                Arrays.asList(rowHeights));
    }
}

Feature 4: Einrichtung der Tabellenerfassungsoptionen

Übersicht
Richten Sie Optionen für das Extrahieren von Tabellen mit spezifischen Konfigurationen ein, um die Extraktionsgenauigkeit zu erhöhen.

Konfiguration der Extraktionsoptionen
TableExtractionOptions ermöglicht es Ihnen, festzulegen, ob Kopfzeilen einbezogen, Zellen zusammengeführt oder leere Zeilen ignoriert werden sollen.
TableExtractionOptions konfiguriert das Extraktionsverhalten, z. B. das Einbeziehen von Kopfzeilen oder das Zusammenführen von Zellen.

import com.groupdocs.parser.options.PageTableAreaOptions;
import com.groupdocs.parser.templates.TemplateTableLayout;

public class SetExtractionOptions {
    public static void main(String[] args) {
        TemplateTableLayout layout = new TemplateTableLayout(
                Arrays.asList(new Double[]{50.0, 95.0, 275.0, 415.0, 485.0, 545.0}), 
                Arrays.asList(new Double[]{325.0, 340.0, 365.0, 395.0}));

        PageTableAreaOptions options = new PageTableAreaOptions(layout);
    }
}

Feature 5: Tabellen aus einem Dokument extrahieren

Übersicht
Extrahieren Sie Tabellen mit den konfigurierten Optionen und verarbeiten Sie sie nach Bedarf.

Extraktionsprozess
Die Methode getTables() gibt eine Sammlung von Table‑Objekten zurück, von denen jedes eine erkannte Tabelle auf den angeforderten Seiten darstellt.
getTables() ruft alle erkannten Tabellen aus dem Dokument ab.
Table repräsentiert eine einzelne extrahierte Tabelle mit Zeilen und Zellen.

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.options.PageTableAreaOptions;
import com.groupdocs.parser.data.PageTableArea;

public class ExtractTables {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        PageTableAreaOptions options = new PageTableAreaOptions(/* layout from previous feature */);

        try (Parser parser = new Parser(filePath)) {
            Iterable<PageTableArea> tables = parser.getTables(options);
            
            for (PageTableArea table : tables) {
                // Process each table as needed
            }
        } catch (Exception e) {
            System.err.println("Error extracting tables: " + e.getMessage());
        }
    }
}

Feature 6: Durchlaufen von Tabellenzeilen und -spalten

Übersicht
Nach der Extraktion können Sie Zeilen und Spalten durchlaufen, um einzelne Zellen zuzugreifen.

Durchlaufen und Zugriff auf Zellen
Jede Table liefert getRows() und jede Row liefert getCells(). Sie können den Zelltext über getText() lesen und in CSV oder ein anderes Format schreiben.
Row stellt eine einzelne Zeile innerhalb einer Table dar.
getRows() gibt die Liste der Zeilen in einer Tabelle zurück.
getCells() gibt die Zellen einer Zeile zurück.
getText() ruft den Textinhalt einer Zelle ab.

import com.groupdocs.parser.data.PageTableArea;
import com.groupdocs.parser.data.PageTableAreaCell;

public class IterateTables {
    public static void main(String[] args) {
        PageTableArea table = /* reference to a specific PageTableArea object */;

        for (int row = 0; row < table.getRowCount(); row++) {
            for (int column = 0; column < table.getColumnCount(); column++) {
                PageTableAreaCell cell = table.getCell(row, column);
                if (cell != null) {
                    // Process the cell text as needed
                }
            }
        }
    }
}

Häufige Probleme und Lösungen

ProblemWarum es passiertPro Tipp
Keine Tabellen zurückgegebenDas PDF ist gescannt (bildbasiert)Führen Sie zuerst OCR aus oder verwenden Sie GroupDocs OCR vor dem Parsen.
Falsche SpaltenausrichtungLayout‑Koordinaten sind falschFeinabstimmung der TemplateTableLayout‑Werte, um dem visuellen Raster zu entsprechen.
Speicherspitzen bei großen PDFsParser lädt das gesamte Dokument in den SpeicherVerarbeiten Sie Seiten in Batches und schließen Sie den Parser nach jedem Batch.

Häufig gestellte Fragen

1. Kann ich Tabellen aus gescannten PDFs oder nur aus digitalen PDFs extrahieren?

Antwort: GroupDocs.Parser funktioniert hauptsächlich mit digitalen, auswählbaren PDFs, die eingebetteten Text enthalten. Für gescannte PDFs müssen Sie zuerst OCR ausführen – entweder mit GroupDocs OCR oder einer anderen OCR‑Engine – damit der Text durchsuchbar wird, bevor Tabellen extrahiert werden.

2. Wie gehe ich mit Tabellen mit komplexen Layouts oder zusammengeführten Zellen um?

Antwort: Passen Sie das TemplateTableLayout mit genauen Spalten‑ und Zeilenkoordinaten an oder aktivieren Sie das mergeCells‑Flag in TableExtractionOptions. Eine Nachbearbeitung kann erforderlich sein, um zusammengeführte Bereiche korrekt zu interpretieren.

3. Ist GroupDocs.Parser für große Dokumente oder Batch‑Verarbeitung geeignet?

Antwort: Ja. Die Bibliothek ist für Hochdurchsatz‑Szenarien konzipiert und kann PDFs mit Hunderten von Seiten verarbeiten, während der Speicherverbrauch gering bleibt. Verwenden Sie Seiten‑Bereich‑Optionen und geben Sie die Parser‑Instanz nach jedem Batch frei, um die Leistung zu maximieren.

4. Kann ich die extrahierten Tabellendaten in Formate wie CSV oder Excel exportieren?

Antwort: GroupDocs.Parser liefert rohe Tabellendaten (Zeilen und Zellen). Sie können diese Daten leicht mit OpenCSV in CSV oder mit Apache POI in Excel schreiben. Dies erfüllt den export pdf tables csv Anwendungsfall ohne zusätzliche Lizenzierung.

5. Gibt es Unterstützung für das Extrahieren von Tabellen aus mehreren Seiten auf einmal?

Antwort: Absolut. Rufen Sie parser.getTables(pageOptions) mit einem Seitenbereich auf oder iterieren Sie über alle Seiten. Die API aggregiert Tabellen über Seiten hinweg, sodass Sie einen einzigen konsolidierten Datensatz erstellen können.

Fazit

Java-PDF-Tabellenerfassung wird mit GroupDocs.Parser unkompliziert. Durch das Initialisieren eines Parser, das Bestätigen der Tabellenunterstützung, das Konfigurieren von Layout‑ und Extraktionsoptionen und das Durchlaufen der resultierenden Table‑Objekte können Sie statische PDFs in strukturierte CSV‑ oder Excel‑Dateien verwandeln. Das leistungsorientierte Design der Bibliothek, die Unterstützung von über 50 Formaten und die nahtlose OCR‑Integration machen sie zur idealen Wahl für Rechnungsautomatisierung, Datenmigration und großskalige Analyse‑Pipelines. Mit den oben beschriebenen Schritten sind Sie bereit, zuverlässige Tabellenerfassung in jede Java‑Anwendung einzubetten.


Zuletzt aktualisiert: 2026-09-17
Getestet mit: GroupDocs.Parser 25.5 (Java)
Autor: GroupDocs

Verwandte Tutorials