Manipular Tablas en un PDF existente
Manipular tablas en PDF existentes
Una de las primeras características soportadas por Aspose.PDF para .NET es su capacidad de Trabajar con Tablas y proporciona un gran apoyo para añadir tablas en archivos PDF que se generan desde cero o cualquier archivo PDF existente. También obtienes la capacidad de Integrar Tabla con Base de Datos (DOM) para crear tablas dinámicas basadas en contenidos 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 TextFragmentAbsorber existente. El siguiente fragmento de código muestra los pasos para actualizar contenidos en una celda de tabla particular.
El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.
// Para ejemplos completos y archivos de datos, por favor vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// El camino al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();
// Cargar archivo PDF existente
Document pdfDocument = new Document(dataDir + "input.pdf");
// Crear objeto TableAbsorber para encontrar tablas
TableAbsorber absorber = new TableAbsorber();
// Visitar la primera página con absorber
absorber.Visit(pdfDocument.Pages[1]);
// Acceder a la primera tabla en la página, su primera celda y los fragmentos de texto en ella
TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1];
// Cambiar el texto del primer fragmento de texto en la celda
fragment.Text = "hola mundo";
dataDir = dataDir + "ManipulateTable_out.pdf";
pdfDocument.Save(dataDir);
Reemplazar tabla antigua con una nueva en documento PDF
En caso de que necesite encontrar una tabla particular y reemplazarla con la deseada, puede 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:
// Para ejemplos completos y archivos de datos, por favor vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();
// Cargar el documento PDF existente
Document pdfDocument = new Document(dataDir + @"Table_input2.pdf");
// Crear objeto TableAbsorber para encontrar tablas
TableAbsorber absorber = new TableAbsorber();
// Visitar la primera página con el absorber
absorber.Visit(pdfDocument.Pages[1]);
// Obtener la primera tabla en la página
AbsorbedTable table = absorber.TableList[0];
// Crear nueva tabla
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");
// Reemplazar la tabla con la nueva
absorber.Replace(pdfDocument.Pages[1], table, newTable);
// Guardar el documento
pdfDocument.Save(dataDir + "TableReplaced_out.pdf");