Geração de páginas
Geração de páginas
Aspose.PDF FOSS for .NET provides a paragraph-based layout engine for generating PDF content. Tables, floating boxes, headers/footers, and stamps let you build structured pages without manually constructing content-stream operators.
Adição de parágrafos
Page.Paragraphs é o ponto de entrada para a adição de elementos de conteúdo.
using var doc = new Document();
var page = doc.Pages.Add();
page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");Tabelas de dados
Table Suporta linhas, células, largura de colunas, bordas e estado do texto.
var table = new Table();
table.ColumnWidths = "100 200 100";
var row = table.Rows.Add();
row.Cells.Add("Name");
row.Cells.Add("Description");
row.Cells.Add("Price");
page.Paragraphs.Add(table);Formatação de células
Cells.Add retorna um Cell onde você pode configurar bordas, acolchamento e conteúdo aninhado.
var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);Caixas flutuantes
FloatingBox posiciona o conteúdo em coordenadas absolutas na página.
var box = new FloatingBox(200, 100);
box.Left = 72;
box.Top = 700;
box.Paragraphs.Add(new TextFragment("Positioned text"));
page.Paragraphs.Add(box);Cabeçalhos e pés de papel
HeaderFooter Adiciona conteúdo repetitivo na parte superior ou inferior das páginas.
var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);
var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);Marcas de página
PdfPageStamp sobrepõe o conteúdo de uma página PDF a outra.
var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);Dicas e melhores práticas
- Utilização:
Table.ColumnWidthscomo uma sequência de valores pontuais separados por espaço para controlar o layout. FloatingBoxé útil para o posicionamento absoluto combinar comTablepara o conteúdo estruturado.HeaderFooter.FromTextsuporte de{0}como um marcador de página.- Adicionar todos os parágrafos antes de ligar
Saveo motor de layout processa conteúdos em ordem. - Utilização:
BorderInfoPara adicionar bordas a tabelas, células e caixas flutuantes.
Problemas comuns
| Emissão | Causa da morte | Correção |
|---|---|---|
| Página de sobrecargas da tabela | Muitas linhas para uma página. | A biblioteca se auto-pagina; ajuste as margens, se necessário |
| Cabeça não aparecendo | ApplyAsHeader chamou depois de Save | Aplicar cabeçalhos antes de salvar |
| FloatingBox na posição errada | Coordenadas medidas a partir do canto superior esquerdo em unidades de parágrafo | Verifique se as unidades correspondem às suas expectativas. |
FAQ
Posso criar tabelas de várias páginas?
Sim. Quando uma tabela excede a altura da página disponível, ela continua automaticamente na próxima página.
Como adiciono imagens às células da tabela?
Criar um Image parágrafo e adicioná-lo à célula de Paragraphs coleção.
Posso importar dados de uma matriz para uma tabela?
Sim, usa. Table.ImportArray para preencher uma tabela de um array bidimensional.
Resumo de referência da API
| Classe / Método | Descrição: |
|---|---|
Paragraphs | Elementos de conteúdo ordenados numa página |
Paragraphs.Add | Anexar um elemento de parágrafo (texto, tabela, gráfico, etc.) |
Table | Disposição da grade com largura de linhas, células e colunas |
Table.ImportArray | Preencher uma tabela de um array |
Rows | Coleção de linhas numa tabela |
Cells | Coleção de células numa linha da tabela |
BorderInfo | Designação de bordas para tabelas, células e caixas |
FloatingBox | Container de conteúdo absolutamente posicionado |
HeaderFooter | Repetir o conteúdo do cabeçalho ou pé de página |
HeaderFooter.FromText | Criar cabeçalho/página de rodapé a partir de um modelo de texto |
PdfPageStamp | Superposição de uma página PDF como um selo |