
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.
- Java API untuk Mengekstrak Data dari Tabel dalam PDF
- Ekstrak Data dari Tabel dalam PDF
- Ekstrak Tabel dari Area Halaman Tertentu
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.
- Pertama, muat dokumen PDF menggunakan kelas Document.
- Ulangi halaman dalam PDF menggunakan koleksi Document.getPages().
- Di setiap iterasi, inisialisasi objek TableAbsorber dan kunjungi halaman yang dipilih menggunakan metode TableAbsorber.visit(Page).
- Dalam loop bersarang, ulangi daftar tabel di koleksi TableAbsorber.getTableList().
- Untuk setiap AbsorbedTable dalam koleksi, ulangi melalui koleksi baris dari AbsorbedTable.getRowList().
- Untuk setiap AbsorbedRow dalam koleksi, ulangi melalui koleksi sel dari AbsorbedRow.getCellList().
- Terakhir, ulangi koleksi TextFragment dari setiap AbsorbedCell dan cetak teksnya.
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.
- Pertama, muat dokumen PDF menggunakan kelas Document.
- Kemudian, pilih Halaman yang diinginkan dari koleksi Document.getPages().
- Ekstrak anotasi Kotak halaman.
- Di setiap iterasi, inisialisasi objek TableAbsorber dan kunjungi halaman yang dipilih menggunakan metode TableAbsorber.visit(Page).
- Dalam loop bersarang, lakukan iterasi melalui daftar tabel di koleksi TableAbsorber.getTableList().
- Periksa apakah tabel yang diserap berada di wilayah halaman yang diinginkan.
- Untuk setiap AbsorbedTable dalam koleksi, lakukan iterasi melalui koleksi baris menggunakan AbsorbedTable.getRowList().
- Untuk setiap AbsorbedRow dalam koleksi, lakukan iterasi melalui koleksi sel menggunakan AbsorbedRow.getCellList().
- Terakhir, ulangi koleksi TextFragment dari setiap AbsorbedCell dan cetak teksnya.
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.