Jak wykonać ekstrakcję tabel PDF w języku Java przy użyciu GroupDocs.Parser

Ekstrakcja tabel z plików PDF jest częstym wymaganiem, gdy trzeba przekształcić statyczne dokumenty w dane strukturalne. W tym samouczku dowiesz się jak wyodrębniać tabele z PDF‑ów przy użyciu biblioteki GroupDocs.Parser dla Javy. Omówimy konfigurację środowiska, ustawienia układu tabel oraz jak eksportować tabele PDF do CSV w celu dalszego przetwarzania. Po zakończeniu będziesz mógł zintegrować solidną ekstrakcję tabel w dowolnym potoku danych opartym na Javie.

Szybkie odpowiedzi

  • Jaka jest główna biblioteka? GroupDocs.Parser for Java
  • Czy mogę wyodrębniać tabele ze skanowanych PDF‑ów? Tylko po OCR; zobacz notatkę „extract tables scanned pdf” poniżej
  • Czy potrzebna jest licencja? Licencja próbna działa w środowisku deweloperskim; pełna licencja jest wymagana w produkcji
  • Jaka wersja Javy jest wymagana? Java 8 lub wyższa
  • Czy obsługiwane jest przetwarzanie wsadowe? Tak – API jest zoptymalizowane pod kątem ekstrakcji na dużą skalę

Czym jest ekstrakcja tabel PDF w Javie?

Ekstrakcja tabel PDF w Javie to proces programowego lokalizowania struktur tabelarycznych w dokumencie PDF, interpretowania granic komórek oraz pobierania tekstu w formacie czytelnym dla maszyn, takim jak CSV lub Excel. Umożliwia to dalszą analizę, raportowanie lub zadania migracyjne bez ręcznego kopiowania i wklejania.

Dlaczego warto używać GroupDocs.Parser do ekstrakcji tabel PDF w Javie?

GroupDocs.Parser zapewnia dokładne wykrywanie układu dla ponad 50 + formatów wejściowych i wyjściowych i może przetwarzać PDF‑y o setkach stron, utrzymując zużycie pamięci poniżej 200 MB. Obsługuje zadania wsadowe, oferuje prostą zależność Maven oraz integruje się bezproblemowo z GroupDocs OCR w scenariuszach dokumentów skanowanych.

Wymagania wstępne

Zanim zaczniemy, upewnij się, że masz następujące:

  • Java 8+ zainstalowana i skonfigurowana w Twoim IDE lub narzędziu budującym.
  • Maven do zarządzania zależnościami.
  • Dostęp do licencji GroupDocs.Parser (próbna lub pełna).

Wymagane biblioteki i zależności

Będziesz potrzebował:

  • Biblioteka GroupDocs.Parser dla Javy (wersja 25.5 lub nowsza).
  • Maven zainstalowany w systemie do zarządzania zależnościami.

Konfiguracja środowiska

Upewnij się, że środowisko programistyczne jest skonfigurowane z kompatybilną wersją Javy (Java 8 lub wyższą).

Wymagania wiedzy

Podstawowa znajomość programowania w Javie oraz obsługi plików w Javie będzie przydatna.

Konfiguracja GroupDocs.Parser dla Javy

Aby rozpocząć korzystanie z GroupDocs.Parser, zintegrować go z projektem w następujący sposób:

Konfiguracja Maven
Dodaj następującą konfigurację do pliku pom.xml, aby uwzględnić GroupDocs.Parser jako zależność:

<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>

Bezpośrednie pobranie
Ewentualnie pobierz najnowszą wersję GroupDocs.Parser dla Javy z GroupDocs releases.

Uzyskanie licencji

Rozpocznij od darmowej wersji próbnej, uzyskaj tymczasową licencję lub zakup pełną licencję. Odwiedź GroupDocs licensing page po szczegóły.

Podstawowa inicjalizacja i konfiguracja

Zainicjalizuj GroupDocs.Parser w aplikacji Java w następujący sposób:

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

Przewodnik implementacji

Przejdźmy przez każdą funkcję, którą musisz opanować, aby wyodrębniać tabele z PDF‑a.

Funkcja 1: parsowanie dokumentu z GroupDocs

Przegląd
Aby pracować z dokumentem PDF, utwórz instancję klasy Parser.
Parser jest klasą wejściową do odczytu zawartości PDF w GroupDocs.Parser. Umożliwia to różne operacje na dokumencie.

Tworzenie instancji parsera
Klasa Parser jest punktem wejścia do odczytu zawartości PDF w GroupDocs.Parser. Ładuje dokument do pamięci i udostępnia metody do wyodrębniania tekstu, tabel i innych struktur.

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

Funkcja 2: sprawdzenie możliwości ekstrakcji tabel

Przegląd
Przed wyodrębnieniem tabel, sprawdź, czy PDF obsługuje ekstrakcję tabel.

Sprawdzanie wsparcia tabel
Metoda hasTables() zwraca wartość boolowską wskazującą, czy załadowany PDF zawiera wykrywalne dane tabelaryczne.
hasTables() sprawdza, czy dokument zawiera jakiekolwiek tabele.

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

Funkcja 3: konfiguracja układu tabeli

Przegląd
Konfiguracja układu tabel może zwiększyć dokładność ekstrakcji danych.

Ustawianie układu tabeli
TemplateTableLayout definiuje oczekiwane szerokości kolumn i wysokości wierszy.
TemplateTableLayout określa niestandardowe szerokości kolumn i wysokości wierszy dla wykrywania tabel. Dostosowanie tych wartości pomaga silnikowi wyrównać granice komórek z wizualną siatką.

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));
    }
}

Funkcja 4: konfiguracja opcji ekstrakcji tabel

Przegląd
Skonfiguruj opcje wyodrębniania tabel z określonymi ustawieniami, aby poprawić dokładność ekstrakcji.

Konfigurowanie opcji ekstrakcji
TableExtractionOptions pozwala określić, czy uwzględniać wiersze nagłówka, łączyć komórki lub ignorować puste wiersze.
TableExtractionOptions konfiguruje zachowanie ekstrakcji, takie jak uwzględnianie nagłówków czy łączenie komórek.

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);
    }
}

Funkcja 5: wyodrębnianie tabel z dokumentu

Przegląd
Wyodrębniaj tabele przy użyciu skonfigurowanych opcji i przetwarzaj je w razie potrzeby.

Proces ekstrakcji
Metoda getTables() zwraca kolekcję obiektów Table, z których każdy reprezentuje wykrytą tabelę na żądanych stronach.
getTables() pobiera wszystkie wykryte tabele z dokumentu.
Table reprezentuje pojedynczą wyodrębnioną tabelę z wierszami i komórkami.

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

Funkcja 6: iterowanie po wierszach i kolumnach tabeli

Przegląd
Po ekstrakcji iteruj po wierszach i kolumnach, aby uzyskać dostęp do poszczególnych komórek.

Iterowanie i dostęp do komórek
Każda Table udostępnia getRows(), a każdy Row udostępnia getCells(). Możesz odczytać tekst komórki za pomocą getText() i zapisać go do CSV lub innego formatu.
Row reprezentuje pojedynczy wiersz w Table.
getRows() zwraca listę wierszy w tabeli.
getCells() zwraca komórki wiersza.
getText() pobiera tekstową zawartość komórki.

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
                }
            }
        }
    }
}

Częste problemy i rozwiązania

ProblemDlaczego się pojawiaWskazówka
Brak zwróconych tabelPDF jest zeskanowany (oparty na obrazie)Najpierw uruchom OCR lub użyj GroupDocs OCR przed parsowaniem.
Nieprawidłowe wyrównanie kolumnWspółrzędne układu są niepoprawneDostrój wartości TemplateTableLayout, aby pasowały do wizualnej siatki.
Wzrost zużycia pamięci przy dużych PDF‑achParser ładuje cały dokument do pamięciPrzetwarzaj strony w partiach i zamykaj Parser po każdej partii.

Często zadawane pytania

1. Czy mogę wyodrębniać tabele ze skanowanych PDF‑ów czy tylko z cyfrowych PDF‑ów?

Answer: GroupDocs.Parser działa głównie z cyfrowymi, wybieralnymi PDF‑ami zawierającymi osadzony tekst. W przypadku skanowanych PDF‑ów należy najpierw uruchomić OCR — za pomocą GroupDocs OCR lub innego silnika OCR — aby tekst stał się przeszukiwalny przed wyodrębnieniem tabel.

2. Jak obsługiwać tabele o złożonych układach lub scalonych komórkach?

Answer: Dostosuj TemplateTableLayout przy użyciu precyzyjnych współrzędnych kolumn i wierszy lub włącz flagę mergeCells w TableExtractionOptions. Może być wymagana dalsza obróbka, aby poprawnie zinterpretować scalone obszary.

3. Czy GroupDocs.Parser jest odpowiedni dla dużych dokumentów lub przetwarzania wsadowego?

Answer: Tak. Biblioteka jest zaprojektowana do scenariuszy o wysokiej przepustowości i może przetwarzać PDF‑y setek stron przy niskim zużyciu pamięci. Używaj opcji zakresu stron i zwalniaj instancję Parser po każdej partii, aby zmaksymalizować wydajność.

4. Czy mogę wyeksportować wyodrębnione dane tabeli do formatów takich jak CSV lub Excel?

Answer: GroupDocs.Parser zwraca surowe dane tabeli (wiersze i komórki). Możesz łatwo zapisać te dane do CSV przy użyciu OpenCSV lub do Excela przy użyciu Apache POI. Spełnia to przypadek użycia export pdf tables csv bez dodatkowej licencji.

5. Czy istnieje wsparcie dla wyodrębniania tabel z wielu stron jednocześnie?

Answer: Absolutnie. Wywołaj parser.getTables(pageOptions) z zakresem stron lub iteruj po wszystkich stronach. API agreguje tabele z różnych stron, umożliwiając stworzenie jednego skonsolidowanego zestawu danych.

Podsumowanie

Ekstrakcja tabel PDF w Javie staje się prosta dzięki GroupDocs.Parser. Poprzez inicjalizację Parser, potwierdzenie wsparcia tabel, konfigurację układu i opcji ekstrakcji oraz iterację po otrzymanych obiektach Table, możesz przekształcić statyczne PDF‑y w strukturalne pliki CSV lub Excel. Projekt biblioteki skoncentrowany na wydajności, wsparcie ponad 50 formatów oraz płynna integracja z OCR czynią ją idealnym wyborem do automatyzacji faktur, migracji danych i dużych potoków analitycznych. Dzięki powyższym krokom jesteś gotowy, aby wbudować niezawodną ekstrakcję tabel w dowolnej aplikacji Java.


Ostatnia aktualizacja: 2026-09-17
Testowano z: GroupDocs.Parser 25.5 (Java)
Autor: GroupDocs

Powiązane samouczki