Manipulate Tables in existing PDF
Manipular tablas en un PDF existente
Una de las primeras características admitidas por Aspose.PDF para Java es su capacidad para trabajar con tablas y ofrece un gran soporte para agregar tablas en archivos PDF que se generan desde cero o en cualquier archivo PDF existente. Tienes también la capacidad de integrar la tabla con la 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 de un 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 en particular.
package com.aspose.pdf.examples;
import com.aspose.pdf.*;
public class ExampleManipulate {
private static String _dataDir = "/home/admin1/pdf-examples/Samples/";
public static void ManipulateTables() {
// 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 el absorber
absorber.visit(pdfDocument.getPages().get_Item(1));
// Obtener acceso a la primera tabla en la página, su primera celda y fragmentos de texto en ella
TextFragment fragment = absorber.getTableList().get(0).getRowList().get(0).getCellList().get(0)
.getTextFragments().get_Item(1);
// Cambiar el texto del primer fragmento de texto en la celda
fragment.setText("hola mundo");
pdfDocument.save(_dataDir + "ManipulateTable_out.pdf");
}
Reemplazar la tabla antigua con una nueva en un documento PDF
En caso de que necesites encontrar una tabla en 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 de un documento PDF:
public static void ReplaceOldTableWithNew() {
// Cargar documento PDF existente
Document pdfDocument = new Document(_dataDir + "Table_input2.pdf");
// Crear objeto TableAbsorber para encontrar tablas
TableAbsorber absorber = new TableAbsorber();
Page page = pdfDocument.getPages().get_Item(1);
// Visitar la primera página con el absorbedor
absorber.visit(page);
// Obtener la primera tabla en la página
AbsorbedTable table = absorber.getTableList().get(0);
// Crear nueva tabla
Table newTable = new Table();
newTable.setColumnWidths("100 100 100");
newTable.setDefaultCellBorder (new BorderInfo(BorderSide.All, 1F));
Row row = newTable.getRows().add();
row.getCells().add("Col 1");
row.getCells().add("Col 2");
row.getCells().add("Col 3");
// Reemplazar la tabla con la nueva
absorber.replace(page, table, newTable);
// Guardar documento
pdfDocument.save(_dataDir + "TableReplaced_out.pdf");
}
}