Manipulasi Tabel dalam Dokumen PDF yang Ada
Manipulasi Tabel dalam PDF yang Ada
Aspose.PDF for Python via .NET memungkinkan Anda memperbarui tabel yang sudah ada dalam dokumen PDF. Anda dapat menggunakan TableAbsorber kelas untuk menemukan tabel pada halaman, mengakses baris dan sel, mengubah konten teks, dan menyimpan file yang telah diperbarui.
Gunakan halaman ini ketika Anda perlu memperbarui konten tabel yang ada dalam PDF tanpa membuat ulang tata letak dokumen secara keseluruhan.
Temukan dan Ganti Teks dalam Sel Tabel PDF
Contoh ini menemukan tabel pertama pada halaman 1, mengakses sel pertama, mengganti teksnya, dan menyimpan PDF output.
- Buka PDF input.
- Buat TableAbsorber dan kunjungi halaman 1.
- Pastikan setidaknya satu tabel terdeteksi.
- Akses sel pertama pada baris pertama dari tabel pertama.
- Pastikan sel berisi fragmen teks, kemudian perbarui fragmen pertama.
- Simpan PDF yang telah dimodifikasi.
import aspose.pdf as ap
def replace_cell_text(infile: str, outfile: str) -> None:
"""Replace text in the first cell of the first detected table."""
# Open PDF document
document = ap.Document(infile)
# Create TableAbsorber object to find tables
absorber = ap.text.TableAbsorber()
# Visit first page with absorber
absorber.visit(document.pages[1])
if len(absorber.table_list) == 0:
raise ValueError("No tables were found on page 1.")
first_cell = absorber.table_list[0].row_list[0].cell_list[0]
if len(first_cell.text_fragments) == 0:
raise ValueError("The target cell has no text fragments.")
# Change text of the first text fragment in the cell
first_cell.text_fragments[0].text = "New Value"
# Save PDF document
document.save(outfile)
Ganti Tabel yang Ada dengan Tabel Baru
Anda juga dapat mengganti tabel yang terdeteksi dengan yang baru dibuat. Pendekatan ini berguna ketika struktur dan konten keduanya harus diubah.
Kode di bawah ini membuka PDF, menemukan tabel pertama pada halaman 1, membuat tabel pengganti, menukar tabel lama dengan yang baru, dan menyimpan hasilnya.
import aspose.pdf as ap
def replace_table(infile: str, outfile: str) -> None:
"""Replace an entire table with a new one."""
# Open PDF document
document = ap.Document(infile)
# Create TableAbsorber object to find tables
absorber = ap.text.TableAbsorber()
# Visit first page with absorber
absorber.visit(document.pages[1])
if len(absorber.table_list) == 0:
raise ValueError("No tables were found on page 1.")
# Get first table on the page
old_table = absorber.table_list[0]
# Create new table
new_table = ap.Table()
new_table.column_widths = "100 100 100"
new_table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, 1.0)
row = new_table.rows.add()
row.cells.add("Col 1")
row.cells.add("Col 2")
row.cells.add("Col 3")
row = new_table.rows.add()
row.cells.add("Col 12")
row.cells.add("Col 22")
row.cells.add("Col 32")
# Replace the old table with the new one
absorber.replace(document.pages[1], old_table, new_table)
# Save PDF document
document.save(outfile)