Memanipulasi tabel dalam dokumen PDF yang ada
Contents
[
Hide
]
Gunakan TableAbsorber ketika Anda perlu menemukan tabel yang ada dan memperbarui kontennya.
Mengganti teks di dalam sel tabel
Gunakan contoh ini ketika teks dalam sel yang terdeteksi harus diperbarui tanpa membangun ulang seluruh tabel.
- Buka PDF sumber
Documentdan kunjungi halaman denganTableAbsorber. - Validasi bahwa fragmen teks tabel dan sel target ada.
- Ganti teks sel dan simpan dokumen yang diperbarui.
public static void replaceCells(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
TableAbsorber absorber = new TableAbsorber();
absorber.visit(document.getPages().get_Item(1));
if (absorber.getTableList().isEmpty()) {
throw new IllegalStateException("No tables were found on page 1.");
}
if (absorber.getTableList().get(0).getRowList().get(0).getCellList().get(0).getTextFragments().size() == 0) {
throw new IllegalStateException("The target cell has no text fragments.");
}
absorber.getTableList().get(0).getRowList().get(0).getCellList().get(0)
.getTextFragments().get_Item(1).setText("New Value");
document.save(outputFile.toString());
}
}
Mengganti tabel yang terdeteksi dengan tabel baru
Gunakan contoh ini ketika tabel asli harus sepenuhnya diganti oleh tabel yang baru dibuat.
- Buka PDF sumber
Documentdan deteksi tabel pada halaman. - Buat
Tablebaru dengan struktur yang diinginkan. - Ganti tabel yang diserap dan simpan PDF keluaran.
public static void replaceTable(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
TableAbsorber absorber = new TableAbsorber();
absorber.visit(document.getPages().get_Item(1));
if (absorber.getTableList().isEmpty()) {
throw new IllegalStateException("No tables were found on page 1.");
}
AbsorbedTable oldTable = absorber.getTableList().get(0);
Table newTable = new Table();
newTable.setColumnWidths("100 100 100");
newTable.setDefaultCellBorder(new BorderInfo(BorderSide.All, 1.0f));
Row row = newTable.getRows().add();
row.getCells().add("Col 1");
row.getCells().add("Col 2");
row.getCells().add("Col 3");
row = newTable.getRows().add();
row.getCells().add("Col 12");
row.getCells().add("Col 22");
row.getCells().add("Col 32");
absorber.replace(document.getPages().get_Item(1), oldTable, newTable);
document.save(outputFile.toString());
}
}