Manipuler les tables dans un PDF existant

Manipuler des tables dans des PDF existants

L’une des premières fonctionnalités prises en charge par Aspose.PDF pour .NET est ses capacités de travail avec les tables et il offre un excellent support pour l’ajout de tables dans des fichiers PDF générés à partir de zéro ou dans n’importe quel fichier PDF existant. Vous obtenez également la capacité d’intégrer une table avec une base de données (DOM) pour créer des tables dynamiques basées sur le contenu de la base de données. Dans cette nouvelle version, nous avons implémenté une nouvelle fonctionnalité de recherche et d’analyse de tables simples qui existent déjà sur la page du document PDF. Une nouvelle classe nommée Aspose.PDF.Text.TableAbsorber offre ces capacités. L’utilisation de TableAbsorber est très similaire à la classe TextFragmentAbsorber existante. Le code suivant montre les étapes pour mettre à jour le contenu dans une cellule de table particulière.

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// Charger un fichier PDF existant
Document pdfDocument = new Document(dataDir + "input.pdf");
// Créer un objet TableAbsorber pour trouver les tables
TableAbsorber absorber = new TableAbsorber();

// Visiter la première page avec l'absorbeur
absorber.Visit(pdfDocument.Pages[1]);

// Accéder à la première table de la page, leur première cellule et les fragments de texte à l'intérieur
TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1];

// Changer le texte du premier fragment de texte dans la cellule
fragment.Text = "salut monde";
dataDir = dataDir + "ManipulateTable_out.pdf";
pdfDocument.Save(dataDir);

Remplacer une ancienne table par une nouvelle dans un document PDF

Si vous avez besoin de trouver une table particulière et de la remplacer par celle souhaitée, vous pouvez utiliser la méthode Replace() de la classe TableAbsorber pour le faire. L’exemple suivant démontre la fonctionnalité pour remplacer la table à l’intérieur du document PDF :

// Pour des exemples complets et des fichiers de données, veuillez visiter https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// Charger le document PDF existant
Document pdfDocument = new Document(dataDir + @"Table_input2.pdf");

// Créer un objet TableAbsorber pour trouver les tables
TableAbsorber absorber = new TableAbsorber();

// Visiter la première page avec l'absorbeur
absorber.Visit(pdfDocument.Pages[1]);

// Obtenir la première table de la page
AbsorbedTable table = absorber.TableList[0];

// Créer une nouvelle table
Table newTable = new Table();
newTable.ColumnWidths = "100 100 100";
newTable.DefaultCellBorder = new BorderInfo(BorderSide.All, 1F);

Row row = newTable.Rows.Add();
row.Cells.Add("Col 1");
row.Cells.Add("Col 2");
row.Cells.Add("Col 3");

// Remplacer la table par la nouvelle
absorber.Replace(pdfDocument.Pages[1], table, newTable);

// Enregistrer le document
pdfDocument.Save(dataDir + "TableReplaced_out.pdf");