Cómo agregar números de página a PDFs usando C#

Cómo añadir números de página a un PDF utilizando C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF permite añadir números de página a archivos PDF en C# utilizando cadenas de marcador de posición {page} y {total-pages} en encabezados/pies de página, con opciones para aplicarlos a páginas o secciones específicas para mejorar la navegación del documento.

Los números de página son números secuenciales asignados a cada página de un documento PDF. Son componentes esenciales para la navegación, ya que ayudan a los lectores a localizar páginas específicas y a seguir su posición. Los números de página también permiten citar y referenciar fácilmente el contenido. Con IronPDF, añadir números de página a su PDF es muy sencillo.

como-encabezado:2(Inicio rápido: Agrega números de página a PDFs con facilidad)

Añada números de página a documentos PDF con IronPDF. Con un código mínimo de C#, puede insertar números de página dinámicos en encabezados o pies de página, personalizar su ubicación y especificar en qué páginas aparecen. Tanto si se trata de PDF nuevos como de PDF existentes, IronPDF ofrece una solución flexible para mejorar la navegación y la organización de los documentos.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronPDF con el gestor de paquetes NuGet

    PM > Install-Package IronPdf

  2. Copie y ejecute este fragmento de código.

    new IronPdf.ChromePdfRenderer { RenderingOptions = { HtmlFooter = new IronPdf.HtmlHeaderFooter { HtmlFragment = "<center>{page}of{total-pages}</center>", DrawDividerLine = true } } }
         .RenderHtmlAsPdf("<h1>My multi-page document</h1><div style='page-break-after:always;'></div><h1>Page 2</h1>")
         .SaveAs("numbered-pages.pdf");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronPDF en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


¿Cómo añadir números de página básicos a un PDF?

Utilizando las cadenas de marcador de posición {page} y {total-pages} con la clase TextHeaderFooter o la clase HtmlHeaderFooter, puede añadir el número de página actual y el recuento total de páginas. Esta funcionalidad es esencial a la hora de crear nuevos PDF o convertir HTML a PDF documentos que requieran un formato profesional.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-basic.cs
using IronPdf;

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};

// Create html footer
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render a new PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Add header and footer
pdf.AddTextHeaders(textHeader);
pdf.AddHtmlFooters(htmlFooter);

pdf.SaveAs("pdfWithPageNumber.pdf");
$vbLabelText   $csharpLabel

El PDF de salida del código anterior se muestra a continuación:

También puede añadir encabezados y pies de página con cadenas de marcadores de posición de números de página directamente a las opciones de representación del ChromePdfRenderer. Este enfoque es útil cuando se trabaja con opciones de renderizado para personalizar el resultado PDF.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-chromerenderer.cs
using IronPdf;

// Add header and footer to rendering options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

string html = @"
    <h1>Hello World!</h1>
<div style='page-break-after: always;'/>
    <h1>2nd Page!</h1>";

// Render new PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf");
$vbLabelText   $csharpLabel

Cuando trabaje con documentos complejos, tenga en cuenta los saltos de página y los márgenes personalizados para garantizar que los números de página se muestren correctamente.

¿Cómo puedo añadir números de página solo a determinadas páginas?

Con IronPDF, puede controlar dónde aparecen los números de página. Haz que empiecen en una página específica o que se apliquen a grupos concretos como las páginas indexadas pares. Esta flexibilidad es valiosa a la hora de generar informes en PDF o trabajar con documentos que contengan diferentes secciones.

En primer lugar, prepare el documento PDF para aplicar números de página:

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-preparation.cs
using IronPdf;
using System.Linq;
using System.Collections.Generic;

string multi_page_html = @"
    <p>This is the 1st Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 4th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 5th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 6th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 7th Page</p>";

// Create header
HtmlHeaderFooter header = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(multi_page_html);

// Create a Page Range 0..6
var allPageIndices = Enumerable.Range(0, pdf.PageCount);
$vbLabelText   $csharpLabel

¿Cómo numerar sólo las páginas pares?

A partir del ejemplo anterior, este código aplica números de página exclusivamente a índices de páginas pares. Dado que el filtrado es para índices de páginas pares, el PDF resultante muestra números en las páginas impares. Los índices de página comienzan en cero, mientras que los números de página comienzan en uno. Esta técnica es adecuada para documentos con formato de libro tradicional o cuando se trabaja con documentos PDF fusionados.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-even-pages.cs
// Get even page indexes (resulting in odd page numbers)
var evenPageIndices = allPageIndices.Where(i => i % 2 == 0);

pdf.AddHtmlHeaders(header, 1, evenPageIndices);
pdf.SaveAs("EvenPages.pdf");
$vbLabelText   $csharpLabel

¿Cómo numerar sólo las páginas impares?

Añada números de página a las páginas con números de índice impares. Este enfoque es común en situaciones de impresión a doble cara en las que los números de página deben aparecer en una sola cara del documento impreso.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-odd-pages.cs
// Get odd page indexes (resulting in even page numbers)
var oddPageIndexes = allPageIndices.Where(i => i % 2 != 0);

pdf.AddHtmlHeaders(header, 1, oddPageIndexes);
pdf.SaveAs("OddPages.pdf");
$vbLabelText   $csharpLabel

¿Cómo añadir un número de página sólo a la última página?

Agrega un número de página solo a la última página. Esto es útil para páginas de resumen o para indicar el final del documento.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-last-page-only.cs
// Last page only
var lastPageIndex = new List<int>() { pdf.PageCount - 1 };

pdf.AddHtmlHeaders(header, 1, lastPageIndex);
pdf.SaveAs("LastPageOnly.pdf");
$vbLabelText   $csharpLabel

¿Cómo añado un número de página sólo a la primera página?

Agrega un número de página solo a la primera página. Funciona bien para portadas o documentos en los que solo es necesario identificar la primera página.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-first-page-only.cs
// First page only
var firstPageIndex = new List<int>() { 0 };

pdf.AddHtmlHeaders(header, 1, firstPageIndex);
pdf.SaveAs("FirstPageOnly.pdf");
$vbLabelText   $csharpLabel

¿Cómo omitir la primera página al añadir números de página?

Omite la primera página al aplicar el encabezado. Este requisito común se aplica a documentos con portadas o títulos que no deben mostrar números de página. Al trabajar con formularios PDF o documentos que incluyan una carta de presentación, esta técnica garantiza un formato profesional.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page.cs
// Skip the first page
var skipFirstPage = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 1, skipFirstPage);
pdf.SaveAs("SkipFirstPage.pdf");
$vbLabelText   $csharpLabel

¿Cómo puedo omitir la primera página y empezar a numerar desde el 1 en la segunda página?

Omita la primera página y empiece a numerar a partir de la segunda, considerándola como la página 1. Este enfoque es adecuado para documentos en los que la portada no debe contar en la secuencia de numeración de páginas, como trabajos académicos o informes formales.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page-and-dont-count-it.cs
// Skip the first page and start numbering the second page as page 1
var skipFirstPageAndDontCountIt = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt);
pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf");
$vbLabelText   $csharpLabel

Para explorar todas las opciones de metadatos, visite la Guía de encabezados y pies de página de IronPDF.

Técnicas avanzadas de numeración de páginas

Además de la numeración de páginas básica, IronPDF admite escenarios avanzados, entre los que se incluyen:

  • Numeración por secciones: Diferentes esquemas de numeración para las distintas secciones del documento
  • Números romanos: Formato personalizado para páginas de prefacio o apéndice
  • Múltiples sistemas de numeración: Combinación de diferentes estilos de numeración en un mismo documento
  • Conteo dinámico de páginas: Actualización del recuento total de páginas al añadir o copiar páginas

Estas técnicas resultan muy útiles a la hora de crear documentos complejos, como manuales técnicos, artículos académicos o documentos jurídicos que requieran sofisticados esquemas de numeración de páginas.

Mejores prácticas para los números de página

A la hora de implementar números de página en sus PDF, tenga en cuenta estas prácticas:

  1. Consistencia: Mantenga un posicionamiento y un formato coherentes en todo el documento
  2. Lectura: Asegúrese de que los números de página sean claramente visibles y no se solapen con el contenido
  3. Accesibilidad: Utiliza tamaños de letra y contrastes adecuados para facilitar la lectura
  4. Aspecto profesional: Haga coincidir el estilo del número de página con el diseño general de su documento

Siguiendo estas directrices y aprovechando las flexibles funciones de numeración de páginas de IronPDF, podrá crear documentos PDF profesionales y bien organizados que cumplan sus requisitos específicos.

Preguntas Frecuentes

¿Cómo añado números de página básicos a un PDF en C#?

Con IronPDF, puede añadir números de página utilizando los marcadores de posición {page} y {total-pages} en las clases TextHeaderFooter o HtmlHeaderFooter. Simplemente incluya estos marcadores de posición en su fragmento HTML de encabezado o pie de página, e IronPDF los sustituirá automáticamente por el número de página actual y el recuento total de páginas al renderizar el PDF.

¿Puedo añadir números de página directamente a través de las opciones de renderizado?

Sí, puede añadir números de página directamente a las opciones de renderizado del ChromePdfRenderer de IronPDF. Este enfoque le permite establecer encabezados y pies de página con cadenas de marcador de posición de número de página como parte de la configuración de representación, que es particularmente útil cuando se personaliza la salida de PDF a través de opciones de representación.

¿Qué cadenas de marcadores de posición hay disponibles para la numeración de páginas?

IronPDF proporciona dos cadenas principales para la numeración de páginas: {page} muestra el número de página actual, y {total-pages} muestra el número total de páginas del documento. Estos marcadores de posición se sustituyen automáticamente por los valores reales cuando se genera el PDF.

¿Puedo aplicar números de página sólo a determinadas páginas?

Sí, IronPDF le permite controlar dónde aparecen los números de página en su documento. Puede especificar qué páginas deben mostrar números de página, lo que le permite excluirlos de las portadas o aplicarlos sólo a determinadas secciones de su PDF.

¿Es posible personalizar la ubicación y el estilo de los números de página?

Por supuesto. Con la clase HtmlHeaderFooter de IronPDF, puede personalizar la ubicación, el estilo y el formato de los números de página mediante HTML y CSS. Puede controlar su posición, fuente, tamaño, color e incluso añadir líneas divisorias u otros elementos decorativos.

¿Puedo añadir números de página a documentos PDF existentes?

Sí, IronPDF permite añadir números de página tanto a nuevos PDF como a documentos PDF existentes. Puede cargar un documento PDF existente y aplicar encabezados o pies de página con números de página sin necesidad de volver a crear todo el documento desde cero.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más
Revisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente Principal de Programas - Equipo de la Comunidad .NET
Jeff también es Gerente Principal de Programas para los equipos de .NET y Visual Studio. Es el productor ejecutivo de la serie de conferencias virtuales .NET Conf y anfitrión de 'Fritz and Friends', una transmisión en vivo para desarrolladores que se emite dos veces a la semana donde habla sobre tecnología y escribe código junto con la audiencia. Jeff escribe talleres, presentaciones, y planifica contenido para los eventos de desarrolladores más importantes de Microsoft, incluyendo Microsoft Build, Microsoft Ignite, .NET Conf y la Cumbre de Microsoft MVP.
¿Listo para empezar?
Nuget Descargas 17,012,929 | Versión: 2025.12 recién lanzado