Ekstrak Data dari Tabel di PDF Java

PDF adalah salah satu format dokumen yang berkuasa saat ini. Ini mendukung teks, grafik, tabel, anotasi, dan berbagai elemen lainnya. Dalam kasus tertentu, Anda mungkin perlu mengekstrak data dari tabel dalam dokumen PDF seperti faktur. Untuk mencapai ini secara terprogram, artikel ini membahas cara mengekstrak data dari tabel dalam PDF menggunakan Java.

Ekstrak Data dari Tabel dalam PDF - Java API

Aspose.PDF for Java adalah API kaya fitur untuk membuat dan memanipulasi dokumen PDF. Kami akan menggunakan API ini untuk mengekstrak data dari tabel dalam dokumen PDF. Anda dapat mengunduh JAR API atau menginstalnya di dalam aplikasi Java Anda menggunakan konfigurasi Maven berikut.

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

Ekstraksi Data dari Tabel dalam PDF di Jawa

Berikut langkah-langkah mengekstrak data dari tabel dalam PDF menggunakan Java.

Contoh kode berikut menunjukkan cara mengekstrak teks dari tabel dalam PDF menggunakan Java.

// Muat dokumen PDF sumber
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Buat meja absrober
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();

// Pindai halaman
for (com.aspose.pdf.Page page : pdfDocument.getPages()) {
    
    // Kunjungi halaman
    absorber.visit(page);
  
    // Iterasi melalui tabel
   for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
        System.out.println("Table");
        
        // Ulangi melalui daftar baris
       for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
            
            // Ulangi daftar sel
           for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
                
                // Iterasi melalui fragmen teks
               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: Ekstrak Data Tabel dari Area Tertentu Halaman PDF

Berikut ini adalah langkah-langkah untuk mengekstrak tabel dari bagian halaman tertentu dalam PDF menggunakan Java.

Contoh kode berikut menunjukkan cara mengekstrak tabel dari wilayah tertentu di halaman PDF.

// Muat dokumen PDF sumber
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Dapatkan referensi dari halaman yang diinginkan
com.aspose.pdf.Page page = pdfDocument.getPages().get_Item(1);

// Buat pemilih anotasi
com.aspose.pdf.AnnotationSelector annotationSelector = new com.aspose.pdf.AnnotationSelector(
        new com.aspose.pdf.SquareAnnotation(page, com.aspose.pdf.Rectangle.getTrivial()));

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

// Buat anotasi persegi
com.aspose.pdf.SquareAnnotation squareAnnotation = (com.aspose.pdf.SquareAnnotation) list.get(0);

// Buat penyerap tabel dan kunjungi halaman
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
absorber.visit(page);

// Iterasi melalui tabel
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
    {
        // Periksa apakah tabel ada
        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();
                }
            }
        }
    }
}

Dapatkan Lisensi Gratis

Anda dapat menggunakan Aspose.PDF for Java tanpa batasan evaluasi menggunakan lisensi sementara.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mengekstrak data dari tabel dalam PDF menggunakan Java. Selanjutnya, artikel tersebut membahas cara mengekstrak tabel dari wilayah tertentu pada halaman dalam PDF. Selain itu, Anda dapat mempelajari lebih lanjut tentang Aspose.PDF for Java menggunakan dokumentasi. Selain itu, Anda dapat mengajukan pertanyaan melalui forum kami.

Lihat juga