Jak wyodrębnić tabele z PDF w Javie przy użyciu GroupDocs.Parser

Wyodrębnianie tabel z plików PDF jest częstym wymaganiem, gdy trzeba przekształcić statyczne dokumenty w dane strukturalne. W tym samouczku pokażemy jak wyodrębnić tabele z PDF‑ów przy użyciu biblioteki GroupDocs.Parser dla Javy. Zobaczysz, dlaczego to podejście jest idealne dla java pdf table extraction, jak skonfigurować układy dla dokładnych wyników oraz jak export pdf tables csv później.

Szybkie odpowiedzi

  • Jaka jest podstawowa 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 dużej skali wyodrębniania

Co oznacza „how to extract tables” w kontekście PDF‑ów?

Kiedy mówimy o how to extract tables, mamy na myśli proces programowego lokalizowania struktur tabelarycznych w PDF‑ie, interpretacji granic komórek oraz pobierania treści tekstowej w formacie czytelnym dla maszyn (np. CSV, Excel). GroupDocs.Parser abstrahuje niskopoziomowe parsowanie PDF i udostępnia czysty model obiektowy do pracy.

Dlaczego warto używać GroupDocs.Parser do java pdf table extraction?

  • Dokładne wykrywanie układu – Obsługuje wielokolumnowe, wielowierszowe tabele z niestandardowymi współrzędnymi.
  • Skoncentrowane na wydajności – Dobrze radzi sobie z dużymi dokumentami i zadaniami wsadowymi.
  • Łatwa integracja – Zarządzanie zależnościami oparte na Maven oraz przejrzyste API.
  • Rozszerzalne – Można połączyć z GroupDocs OCR dla scenariuszy extract tables scanned pdf.

Wymagania wstępne

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

  • Java 8+ zainstalowaną i skonfigurowaną w 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 for Java (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 pomocna.

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
Alternatywnie, pobierz najnowszą wersję GroupDocs.Parser for Java z GroupDocs releases.

Uzyskanie licencji

Rozpocznij od darmowej wersji próbnej, uzyskaj tymczasową licencję lub zakup pełną licencję. Odwiedź stronę licencjonowania GroupDocs 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 how to extract tables z PDF‑a.

Funkcja 1: Parsowanie dokumentu z GroupDocs

Przegląd
Aby współpracować z dokumentem PDF, utwórz instancję klasy Parser. Umożliwia to różne operacje na dokumencie.

Tworzenie instancji Parser

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 wyodrębniania tabel

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

Sprawdzanie wsparcia tabel

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
Konfigurowanie układu tabel może zwiększyć dokładność wyodrębniania danych.

Ustawianie układu tabeli

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 wyodrębniania tabel

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

Konfigurowanie opcji wyodrębniania

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 wyodrębniania

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 wyodrębnieniu iteruj po wierszach i kolumnach, aby uzyskać dostęp do poszczególnych komórek.

Iterowanie i dostęp do komórek

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

Typowe problemy i rozwiązania

ProblemDlaczego się pojawiaWskazówka
Brak zwróconych tabelPDF jest zeskanowany (oparty na obrazie)Uruchom OCR najpierw lub użyj GroupDocs OCR przed parsowaniem.
Nieprawidłowe wyrównanie kolumnWspółrzędne układu są nieprawidłoweDoprecyzuj 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 partiami i zamykaj Parser po każdej partii.

Najczęściej zadawane pytania

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

Odpowiedź: GroupDocs.Parser działa głównie z cyfrowymi, zaznaczalnymi PDF‑ami zawierającymi wbudowany tekst. W przypadku skanowanych PDF‑ów konieczna jest integracja funkcji OCR (Optical Character Recognition). GroupDocs oferuje osobne moduły OCR, lub możesz użyć innych narzędzi OCR, aby przekonwertować obrazy na tekst przed wyodrębnianiem tabel.

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

Odpowiedź: Dla złożonych układów możesz dostosować TemplateTableLayout przy użyciu konkretnych współrzędnych kolumn i wierszy lub dostosować parametry rozpoznawania, aby poprawić dokładność. Obsługa scalonych komórek może wymagać analizy zakresów komórek i wdrożenia logiki post‑processingowej w celu interpretacji scalonych obszarów.

3. Czy GroupDocs.Parser nadaje się do dużych dokumentów lub przetwarzania wsadowego?

Odpowiedź: Tak, GroupDocs.Parser jest zoptymalizowany pod kątem przetwarzania wsadowego i może efektywnie obsługiwać duże dokumenty. Odpowiednie zarządzanie zasobami i dzielenie zadań przetwarzania na części może dodatkowo zwiększyć wydajność.

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

Odpowiedź: Chociaż GroupDocs.Parser koncentruje się na wyodrębnianiu, dostarcza surowe dane (wiersze i komórki). Możesz łatwo wyeksportować te dane ręcznie lub przy użyciu bibliotek Java, takich jak Apache POI (dla Excela) lub OpenCSV (dla plików CSV). To właśnie w tym scenariuszu export pdf tables csv ma zastosowanie.

5. Czy istnieje obsługa wyodrębniania tabel z wielu stron?

Odpowiedź: Tak, używając parser.getTables() z opcjami stron, można wyodrębniać tabele z wielu stron. Możesz określić zakresy stron lub przetwarzać wszystkie strony iteracyjnie, aby zebrać wszystkie dane tabelaryczne.

Podsumowanie

Wyodrębnianie tabel z PDF‑ów jest kluczowym krokiem w automatyzacji przetwarzania danych dokumentów, a GroupDocs.Parser dla Javy sprawia, że to zadanie jest prostsze niż kiedykolwiek. Tworząc instancję parsera, weryfikując wsparcie tabel, konfigurować opcje układu i iterując po wyodrębnionych danych, programiści mogą efektywnie uzyskać dane strukturalne nawet z złożonych dokumentów PDF. To narzędzie jest wystarczająco elastyczne, aby obsługiwać różnorodne scenariusze — od automatyzacji faktur po analizy danych na dużą skalę — i integruje się płynnie z aplikacjami Java. Dzięki niewielkiej konfiguracji i dostosowaniu zamienisz statyczne PDF‑y w użyteczne dane z precyzją i łatwością.


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