Manipuler les tables dans les documents PDF existants
Manipuler les tables dans le PDF existant
Aspose.PDF for Python via .NET vous permet de mettre à jour les tables qui existent déjà dans un document PDF. Vous pouvez utiliser le TableAbsorber classe pour trouver les tables sur une page, accéder aux lignes et aux cellules, modifier le contenu texte et enregistrer le fichier mis à jour.
Utilisez cette page lorsque vous devez mettre à jour le contenu des tables existantes dans les PDF sans recréer la mise en page complète du document.
Trouver et remplacer le texte dans les cellules de tables PDF
Cet exemple trouve la première table de la page 1, accède à la première cellule, remplace son texte et enregistre le PDF de sortie.
- Ouvrez le PDF d’entrée.
- Créez un TableAbsorber et visitez la page 1.
- Assurez-vous qu’au moins une table est détectée.
- Accédez à la première cellule de la première ligne de la première table.
- Assurez-vous que la cellule contient des fragments de texte, puis mettez à jour le premier fragment.
- Enregistrez le PDF modifié.
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)
Remplacer un tableau existant par un nouveau tableau
Vous pouvez également remplacer un tableau détecté par un tableau nouvellement créé. Cette approche est utile lorsque la structure et le contenu doivent tous les deux changer.
Le code ci-dessous ouvre un PDF, trouve le premier tableau à la page 1, crée un tableau de remplacement, échange l’ancien tableau avec le nouveau, puis enregistre le résultat.
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)