Cara melakukan ekstraksi tabel PDF java dengan GroupDocs.Parser

Mengekstrak tabel dari file PDF adalah kebutuhan yang sering muncul ketika Anda perlu mengubah dokumen statis menjadi data terstruktur. Dalam tutorial ini Anda akan belajar cara mengekstrak tabel dari PDF menggunakan pustaka GroupDocs.Parser untuk Java. Kami akan membahas penyiapan lingkungan, konfigurasi tata letak tabel, dan cara mengekspor tabel pdf ke csv untuk pemrosesan lanjutan. Pada akhir tutorial, Anda akan dapat mengintegrasikan ekstraksi tabel yang kuat ke dalam pipeline data berbasis Java mana pun.

Jawaban Cepat

  • Apa pustaka utama? GroupDocs.Parser for Java
  • Bisakah saya mengekstrak tabel dari PDF yang dipindai? Hanya setelah OCR; lihat catatan “extract tables scanned pdf” di bawah
  • Apakah saya memerlukan lisensi? Lisensi percobaan dapat digunakan untuk pengembangan; lisensi penuh diperlukan untuk produksi
  • Versi Java apa yang diperlukan? Java 8 atau lebih tinggi
  • Apakah pemrosesan batch didukung? Ya – API dioptimalkan untuk ekstraksi skala besar

Apa itu ekstraksi tabel PDF java?

Ekstraksi tabel PDF java adalah proses secara programatis menemukan struktur tabel di dalam PDF, menginterpretasikan batas sel, dan mengambil teks dalam format yang dapat dibaca mesin seperti CSV atau Excel. Hal ini memungkinkan analitik, pelaporan, atau tugas migrasi lanjutan tanpa menyalin‑tempel manual.

Mengapa menggunakan GroupDocs.Parser untuk ekstraksi tabel PDF java?

GroupDocs.Parser menyediakan deteksi tata letak yang akurat untuk lebih dari 50 + format input dan output dan dapat memproses PDF berjumlah ratusan halaman sambil menjaga penggunaan memori di bawah 200 MB. Ia mendukung pekerjaan batch, menawarkan dependensi Maven yang sederhana, dan terintegrasi mulus dengan GroupDocs OCR untuk skenario dokumen yang dipindai.

Prasyarat

Sebelum kita mulai, pastikan Anda memiliki hal berikut:

  • Java 8+ terpasang dan dikonfigurasi di IDE atau alat build Anda.
  • Maven untuk manajemen dependensi.
  • Akses ke lisensi GroupDocs.Parser (percobaan atau penuh).

Pustaka dan dependensi yang diperlukan

Anda akan membutuhkan:

  • GroupDocs.Parser for Java library (version 25.5 or later).
  • Maven installed on your system for dependency management.

Penyiapan lingkungan

Pastikan lingkungan pengembangan Anda telah disiapkan dengan versi Java yang kompatibel (Java 8 atau lebih tinggi).

Prasyarat pengetahuan

Pemahaman dasar tentang pemrograman Java dan familiaritas dengan penanganan file di Java akan sangat membantu.

Menyiapkan GroupDocs.Parser untuk Java

Untuk mulai menggunakan GroupDocs.Parser, integrasikan ke dalam proyek Anda sebagai berikut:

Penyiapan Maven
Tambahkan konfigurasi berikut ke file pom.xml Anda untuk menyertakan GroupDocs.Parser sebagai dependensi:

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

Unduh langsung
Sebagai alternatif, unduh versi terbaru GroupDocs.Parser untuk Java dari GroupDocs releases.

Akuisisi lisensi

Mulailah dengan percobaan gratis, dapatkan lisensi sementara, atau beli lisensi penuh. Kunjungi halaman lisensi GroupDocs untuk detail.

Inisialisasi dan penyiapan dasar

Inisialisasi GroupDocs.Parser dalam aplikasi Java Anda sebagai berikut:

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

Panduan Implementasi

Mari kita bahas setiap fitur yang perlu Anda kuasai cara mengekstrak tabel dari PDF.

Fitur 1: parsing dokumen dengan GroupDocs

Gambaran Umum
Untuk berinteraksi dengan dokumen PDF, buat sebuah instance dari kelas Parser.
Parser adalah kelas titik masuk untuk membaca konten PDF di GroupDocs.Parser. Ini memungkinkan berbagai operasi pada dokumen.

Membuat instance parser
Kelas Parser adalah titik masuk untuk membaca konten PDF di GroupDocs.Parser. Ia memuat dokumen ke memori dan menyediakan metode untuk mengekstrak teks, tabel, dan struktur lainnya.

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

Fitur 2: memeriksa kemampuan ekstraksi tabel

Gambaran Umum
Sebelum mengekstrak tabel, pastikan PDF mendukung ekstraksi tabel.

Memeriksa dukungan tabel
Metode hasTables() mengembalikan nilai boolean yang menunjukkan apakah PDF yang dimuat berisi data tabel yang dapat dideteksi.
hasTables() memeriksa apakah dokumen berisi tabel apa pun.

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

Fitur 3: konfigurasi tata letak tabel

Gambaran Umum
Mengonfigurasi tata letak tabel Anda dapat meningkatkan akurasi dalam ekstraksi data.

Menyiapkan tata letak tabel
TemplateTableLayout mendefinisikan lebar kolom dan tinggi baris yang diharapkan.
TemplateTableLayout menentukan lebar kolom dan tinggi baris khusus untuk deteksi tabel. Menyesuaikan nilai-nilai ini membantu mesin menyelaraskan batas sel dengan grid visual.

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

Fitur 4: penyiapan opsi ekstraksi tabel

Gambaran Umum
Siapkan opsi untuk mengekstrak tabel dengan konfigurasi khusus guna meningkatkan akurasi ekstraksi.

Mengonfigurasi opsi ekstraksi
TableExtractionOptions memungkinkan Anda menentukan apakah menyertakan baris header, menggabungkan sel, atau mengabaikan baris kosong.
TableExtractionOptions mengonfigurasi perilaku ekstraksi seperti menyertakan header atau menggabungkan sel.

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

Fitur 5: mengekstrak tabel dari dokumen

Gambaran Umum
Ekstrak tabel menggunakan opsi yang telah dikonfigurasi dan proses sesuai kebutuhan.

Proses ekstraksi
Metode getTables() mengembalikan koleksi objek Table, masing-masing mewakili tabel yang terdeteksi pada halaman yang diminta.
getTables() mengambil semua tabel yang terdeteksi dari dokumen.
Table mewakili satu tabel yang diekstrak dengan baris dan sel.

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

Fitur 6: iterasi baris dan kolom tabel

Gambaran Umum
Setelah ekstraksi, iterasi baris dan kolom untuk mengakses sel individu.

Iterasi dan akses sel
Setiap Table menyediakan getRows() dan setiap Row menyediakan getCells(). Anda dapat membaca teks sel melalui getText() dan menuliskannya ke CSV atau format lain.
Row mewakili satu baris dalam Table.
getRows() mengembalikan daftar baris dalam tabel.
getCells() mengembalikan sel-sel dalam sebuah baris.
getText() mengambil konten teks dari sebuah sel.

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

Masalah umum dan solusi

IssueWhy it happensPro tip
Tidak ada tabel yang dikembalikanPDF dipindai (berbasis gambar)Jalankan OCR terlebih dahulu atau gunakan GroupDocs OCR sebelum parsing.
Penjajaran kolom tidak tepatKoordinat tata letak tidak tepatSesuaikan nilai TemplateTableLayout agar cocok dengan grid visual.
Lonjakan memori pada PDF besarParser memuat seluruh dokumen ke memoriProses halaman secara batch dan tutup Parser setelah setiap batch.

Pertanyaan yang sering diajukan

1. Bisakah saya mengekstrak tabel dari PDF yang dipindai atau hanya PDF digital?

Jawaban: GroupDocs.Parser terutama bekerja dengan PDF digital yang dapat dipilih dan berisi teks tersemat. Untuk PDF yang dipindai, Anda perlu menjalankan OCR terlebih dahulu—baik dengan GroupDocs OCR atau mesin OCR lain—sehingga teks menjadi dapat dicari sebelum ekstraksi tabel.

2. Bagaimana cara menangani tabel dengan tata letak kompleks atau sel yang digabung?

Jawaban: Sesuaikan TemplateTableLayout dengan koordinat kolom dan baris yang tepat, atau aktifkan flag mergeCells dalam TableExtractionOptions. Pemrosesan lanjutan mungkin diperlukan untuk menginterpretasikan wilayah yang digabung dengan benar.

3. Apakah GroupDocs.Parser cocok untuk dokumen besar atau pemrosesan batch?

Jawaban: Ya. Pustaka ini dibangun untuk skenario throughput tinggi dan dapat memproses PDF dengan ratusan halaman sambil menjaga konsumsi memori tetap rendah. Gunakan opsi rentang halaman dan buang instance Parser setelah setiap batch untuk memaksimalkan kinerja.

4. Bisakah saya mengekspor data tabel yang diekstrak ke format seperti CSV atau Excel?

Jawaban: GroupDocs.Parser mengembalikan data tabel mentah (baris dan sel). Anda dapat dengan mudah menulis data ini ke CSV menggunakan OpenCSV atau ke Excel menggunakan Apache POI. Ini memenuhi kasus penggunaan export pdf tables csv tanpa lisensi tambahan.

5. Apakah ada dukungan untuk mengekstrak tabel dari beberapa halaman sekaligus?

Jawaban: Tentu saja. Panggil parser.getTables(pageOptions) dengan rentang halaman atau iterasi semua halaman. API mengagregasi tabel di seluruh halaman, memungkinkan Anda membangun satu set data terpusat.

Kesimpulan

Ekstraksi tabel PDF java menjadi sederhana dengan GroupDocs.Parser. Dengan menginisialisasi Parser, mengonfirmasi dukungan tabel, mengonfigurasi tata letak dan opsi ekstraksi, serta mengiterasi objek Table yang dihasilkan, Anda dapat mengubah PDF statis menjadi file CSV atau Excel yang terstruktur. Desain pustaka yang berfokus pada kinerja, dukungan untuk lebih dari 50 format, dan integrasi OCR yang mulus menjadikannya pilihan ideal untuk otomatisasi faktur, migrasi data, dan pipeline analitik skala besar. Dengan langkah-langkah yang dijelaskan di atas, Anda siap menyematkan ekstraksi tabel yang andal ke dalam aplikasi Java mana pun.


Terakhir Diperbarui: 2026-09-17
Diuji Dengan: GroupDocs.Parser 25.5 (Java)
Penulis: GroupDocs

Tutorial Terkait