Manipular Tablas en PDF existente

Manipular tablas en PDF existente

Una de las primeras características soportadas por Aspose.PDF for .NET son sus capacidades de Trabajar con Tablas y proporciona un gran soporte para agregar tablas en archivos PDF generados desde cero o en cualquier archivo PDF existente. También obtienes la capacidad de Integrar Tablas con Base de Datos (DOM) para crear tablas dinámicas basadas en el contenido de la base de datos. En esta nueva versión, hemos implementado una nueva característica de búsqueda y análisis de tablas simples que ya existen en la página del documento PDF. Una nueva clase llamada Aspose.PDF.Text.TableAbsorber proporciona estas capacidades. El uso de TableAbsorber es muy similar a la clase existente TextFragmentAbsorber. El siguiente fragmento de código muestra los pasos para actualizar el contenido en una celda de tabla particular.

El siguiente fragmento de código también funciona con la biblioteca 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");
    }
}

Reemplazar tabla antigua con una nueva en el documento PDF

En caso de que necesites encontrar una tabla particular y reemplazarla con la deseada, puedes usar el método Replace() de la clase TableAbsorber para hacerlo. El siguiente ejemplo demuestra la funcionalidad para reemplazar la tabla dentro del documento 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");
    }
}