Manipuler des tableaux dans un PDF existant

Manipuler des tableaux dans un PDF existant

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

L’extrait de code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ManipulateTable()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
        // Create TableAbsorber object to find tables
        var absorber = new Aspose.Pdf.Text.TableAbsorber();

        // Visit first page with absorber
        absorber.Visit(document.Pages[1]);

        // Get access to first table on page, their first cell and text fragments in it
        Aspose.Pdf.Text.TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1];

        // Change text of the first text fragment in the cell
        fragment.Text = "hi world";

        // Save PDF document
        document.Save(dataDir + "ManipulateTable_out.pdf");
    }
}

Remplacer un ancien tableau par un nouveau dans un document PDF

Dans le cas où vous devez trouver un tableau particulier et le remplacer par celui souhaité, vous pouvez utiliser la méthode Replace() de la classe TableAbsorber pour ce faire. L’exemple suivant démontre la fonctionnalité de remplacement du tableau à l’intérieur du document PDF :

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ReplaceTable()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "Table_input2.pdf"))
    {
        // Create TableAbsorber object to find tables
        var absorber = new Aspose.Pdf.Text.TableAbsorber();

        // Visit first page with absorber
        absorber.Visit(document.Pages[1]);

        // Get first table on the page
        Aspose.Pdf.Text.AbsorbedTable table = absorber.TableList[0];

        // Create new table
        var newTable = new Aspose.Pdf.Table();
        newTable.ColumnWidths = "100 100 100";
        newTable.DefaultCellBorder = new Aspose.Pdf.BorderInfo(BorderSide.All, 1F);

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

        // Replace the table with new one
        absorber.Replace(document.Pages[1], table, newTable);

        // Save PDF document
        document.Save(dataDir + "ReplaceTable_out.pdf");
    }
}