Generación de página
Generación de página
Aspose.PDF FOSS for .NET proporciona un motor de diseño basado en párrafos para generar contenido PDF. Las tablas, los cuadros flotantes, los encabezados/pies de página y los sellos le permiten crear páginas estructuradas sin construir manualmente los operadores del flujo de contenido.
Añadiendo párrafos
Page.Paragraphs es el punto de entrada para agregar elementos de contenido.
using var doc = new Document();
var page = doc.Pages.Add();
page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");Tablas
Table admite filas, celdas, anchos de columna, bordes y estado de 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);Formato de celda
Cells.Add devuelve un Cell donde puedes configurar bordes, relleno y contenido anidado.
var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);Cajas flotantes
FloatingBox posiciona el contenido en coordenadas absolutas en la 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);Encabezados y pies de página
HeaderFooter agrega contenido repetido en la parte superior o inferior de las páginas.
var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);
var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);Sellos de página
PdfPageStamp superpone contenido de una página PDF sobre otra.
var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);Consejos y mejores prácticas
- Use
Table.ColumnWidthscomo una cadena de valores de punto separados por espacios para controlar el diseño. FloatingBoxes útil para el posicionamiento absoluto — combine conTablepara contenido estructurado.HeaderFooter.FromTextadmite{0}como marcador de posición de número de página.- Añada todos los párrafos antes de llamar a
Save— el motor de diseño procesa el contenido en orden. - Use
BorderInfopara agregar bordes a tablas, celdas y cajas flotantes.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| La tabla desborda la página | Demasiadas filas para una página | La biblioteca paginación automática; ajuste los márgenes si es necesario |
| El encabezado no aparece | ApplyAsHeader called after Save | Aplique los encabezados antes de guardar |
| FloatingBox en posición incorrecta | Coordenadas medidas desde la esquina superior izquierda en unidades de párrafo | Verifique que las unidades coincidan con sus expectativas |
Preguntas frecuentes
¿Puedo crear tablas de varias páginas?
Sí. Cuando una tabla supera la altura de página disponible, continúa automáticamente en la página siguiente.
¿Cómo añado imágenes a las celdas de la tabla?
Cree un párrafo Image y añádalo a la colección Paragraphs de la celda.
¿Puedo importar datos de una matriz a una tabla?
Sí. Use Table.ImportArray para poblar una tabla a partir de una matriz bidimensional.
Resumen de referencia de API
| Clase / Método | Descripción |
|---|---|
Paragraphs | Elementos de contenido ordenados en una página |
Paragraphs.Add | Añadir un elemento de párrafo (texto, tabla, gráfico, etc.) |
Table | Diseño de cuadrícula con filas, celdas y anchos de columna |
Table.ImportArray | Rellenar tabla a partir de una matriz |
Rows | Colección de filas en una tabla |
Cells | Colección de celdas en una fila de tabla |
BorderInfo | Estilo de bordes para tablas, celdas y cuadros |
FloatingBox | Contenedor de contenido con posición absoluta |
HeaderFooter | Contenido de encabezado o pie de página repetitivo |
HeaderFooter.FromText | Crear encabezado/pie de página a partir de una plantilla de texto |
PdfPageStamp | Superponer una página PDF como sello |