Manipular Tabelas em PDF existente

Manipular tabelas em PDFs existentes

Uma das primeiras funcionalidades suportadas pelo Aspose.PDF para .NET é a sua capacidade de Trabalhar com Tabelas, oferecendo ótimo suporte para adicionar tabelas em arquivos PDF que estão sendo gerados do zero ou em qualquer arquivo PDF existente. Você também obtém a capacidade de Integrar Tabela com Banco de Dados (DOM) para criar tabelas dinâmicas baseadas em conteúdos de banco de dados. Neste novo lançamento, implementamos a nova funcionalidade de buscar e analisar tabelas simples que já existem na página do documento PDF. Uma nova classe chamada Aspose.PDF.Text.TableAbsorber fornece essas capacidades. O uso do TableAbsorber é muito semelhante à classe TextFragmentAbsorber existente. O seguinte trecho de código mostra os passos para atualizar conteúdos em uma célula de tabela específica.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

// Para exemplos completos e arquivos de dados, por favor vá para https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// Carregar arquivo PDF existente
Document pdfDocument = new Document(dataDir + "input.pdf");
// Criar objeto TableAbsorber para encontrar tabelas
TableAbsorber absorber = new TableAbsorber();

// Visitar a primeira página com o absorvedor
absorber.Visit(pdfDocument.Pages[1]);

// Obter acesso à primeira tabela na página, sua primeira célula e fragmentos de texto nela
TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1];

// Mudar o texto do primeiro fragmento de texto na célula
fragment.Text = "oi mundo";
dataDir = dataDir + "ManipulateTable_out.pdf";
pdfDocument.Save(dataDir);

Substituir uma tabela antiga por uma nova em um documento PDF

Caso você precise encontrar uma tabela específica e substituí-la pela desejada, você pode usar o método Replace() da classe TableAbsorber para fazer isso. O exemplo a seguir demonstra a funcionalidade para substituir a tabela dentro de um documento PDF:

// Para exemplos completos e arquivos de dados, por favor, vá para https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// Carregar documento PDF existente
Document pdfDocument = new Document(dataDir + @"Table_input2.pdf");

// Criar objeto TableAbsorber para encontrar tabelas
TableAbsorber absorber = new TableAbsorber();

// Visitar a primeira página com o absorvedor
absorber.Visit(pdfDocument.Pages[1]);

// Obter a primeira tabela na página
AbsorbedTable table = absorber.TableList[0];

// Criar nova tabela
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");

// Substituir a tabela pela nova
absorber.Replace(pdfDocument.Pages[1], table, newTable);

// Salvar o documento
pdfDocument.Save(dataDir + "TableReplaced_out.pdf");