Saltar al pie de página
COMPARACIONES DE PRODUCTOS

Cómo Añadir Números de Página en PDF usando iTextSharp en C#

"Formato de Documento Portable" o PDF, es un formato de archivo creado por Adobe. Los PDFs son útiles al presentar documentos que necesitan tener su texto e imágenes formateados de manera consistente. En el mundo actual, los archivos PDF son esenciales y se utilizan para la creación de documentos y facturación en todos los sectores corporativos. Gracias a las varias bibliotecas de PDF que hay ahora en el mercado, crear PDFs se ha vuelto prácticamente instintivo. Para elegir la biblioteca de PDF apropiada para usted, es crucial sopesar los beneficios y características de cada una antes de utilizarla para su proyecto.

En este artículo, vamos a ver cómo añadir números de página en PDF usando iTextSharp C#. Also, we are going to compare iTextSharp with IronPDF.

Cómo Añadir Números de Página en PDF usando iTextSharp C#

  1. Cree un nuevo proyecto C# usando cualquier IDE.
  2. Cree un nuevo objeto PDF.
  3. Agregue números de página al pie de página en HTML.
  4. Cree un PDF a partir de contenido HTML.
  5. Guarde el archivo PDF en su computadora.

Qué es IronPDF

IronPDF es un sólido Framework de PDF .NET que los desarrolladores utilizan para crear, ver y editar fácilmente PDFs. IronPDF es una herramienta sofisticada que se ejecuta internamente en un motor de cromo. Puede convertir archivos HTML5, JavaScript, CSS e imágenes a PDF, añadir encabezados y pies de página personalizados, y producir PDFs tal como aparecen en un navegador. IronPDF soporta muchos formatos en línea y netos, incluidos HTML, ASPX, Razor View y MVC.

Características de IronPDF

  • Utilizar código .NET C# para crear, leer y editar fácilmente archivos PDF.
  • Crear PDFs desde un enlace URL del sitio web mientras se gestionan User-Agents, Proxies, Cookies, encabezados HTTP y variables de formulario para permitir inicio de sesión utilizando formularios de inicio de sesión HTML.
  • Extraer imágenes de archivos PDF existentes.
  • Incluir elementos en un PDF: tabla, texto, imágenes, marcadores, marcas de agua, encabezados, pies de página y más.
  • Capacidad para dividir y combinar páginas de múltiples documentos PDF con facilidad.

Para saber más sobre la documentación de IronPDF, consulte aquí.

Instalación de IronPDF

Dentro de Visual Studio Tools, seleccione el Administrador de Paquetes NuGet, y puede encontrar la interfaz de línea de comandos visual bajo Tools. El siguiente comando debe ingresarse en la pestaña del terminal de gestión de paquetes.

Install-Package IronPdf

O podemos usar el método del administrador de paquetes. Instalar el paquete directamente en la solución es posible con la opción del Administrador de Paquetes NuGet de Visual Studio. Hay un cuadro de búsqueda disponible para localizar paquetes en el sitio web de NuGet. Solo necesitamos buscar "IronPDF" en el administrador de paquetes, como ilustra la captura de pantalla a continuación:

Cómo Añadir Números de Página en PDF usando iTextSharp en C#: Figura 1 - Instalación de IronPDF desde el administrador de paquetes

La lista de resultados de búsqueda relevantes se muestra en la imagen anterior. Para que el paquete se instale en su sistema, realice las selecciones necesarias.

Ahora que el paquete ha sido descargado e instalado, puede ser utilizado en el proyecto actual.

Qué es iTextSharp

iTextSharp es una biblioteca flexible para producir y modificar documentos PDF en C#. Ofrece varias características, como cifrado, fusión de PDF, extracción de texto e imágenes, y mucho más. iTextSharp es una herramienta eficiente para numerosas tareas, incluido agregar números de página a PDFs.

Características de iTextSharp

  • Una API para generar documentos PDF está disponible a través de la biblioteca iText.
  • Tanto cadenas HTML como XML pueden analizarse en archivos PDF utilizando el programa iText.
  • Podemos añadir marcadores, números de página y marcadores a nuestros documentos PDF utilizando la biblioteca iText.
  • También podemos dividir un documento PDF en varios PDFs o fusionar múltiples documentos PDF en un único PDF utilizando la biblioteca iText.
  • Podemos modificar formularios PDF con iText.

Instalar iTextSharp

Use el administrador de paquetes NuGet para buscar iText. Las instalaciones de iText7 e iText.pdfhtml son necesarias ya que las funcionalidades de iText están divididas en varios paquetes.

Si elige la interfaz de línea de comandos visual, los siguientes paquetes deben ser instalados:

Install-Package iText7
Install-Package itext7.pdfhtml
Install-Package iText7
Install-Package itext7.pdfhtml
SHELL

Dado que iText 7 es la versión más reciente, es la que estamos empleando en nuestra solución.

Agregar Números de Página usando IronPDF

Agregar números de página a archivos PDF es simple gracias a la completa biblioteca de IronPDF. Para ilustrar, consulte el siguiente código:

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the IronPdf renderer
        var renderer = new IronPdf.HtmlToPdf();

        // HTML content to convert to PDF
        string header = "<h1>Hello Ironpdf!</h1>";

        // Render the HTML content to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the footer with page number placeholders
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the output PDF file
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the IronPdf renderer
        var renderer = new IronPdf.HtmlToPdf();

        // HTML content to convert to PDF
        string header = "<h1>Hello Ironpdf!</h1>";

        // Render the HTML content to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the footer with page number placeholders
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the output PDF file
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize the IronPdf renderer
		Dim renderer = New IronPdf.HtmlToPdf()

		' HTML content to convert to PDF
		Dim header As String = "<h1>Hello Ironpdf!</h1>"

		' Render the HTML content to PDF
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)

		' Define the footer with page number placeholders
		Dim htmlFooter As New HtmlHeaderFooter With {.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"}

		' Add footer to the PDF
		pdf.AddHtmlFooters(htmlFooter)

		' Save the output PDF file
		pdf.SaveAs("output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Explicación

  1. Inicialice el Renderer: Creamos una instancia de HtmlToPdf, que proporciona la función de conversión de HTML a PDF.
  2. Defina el Contenido HTML: Se especifica el contenido HTML que necesita ser convertido a PDF.
  3. Renderizar Contenido HTML: Se utiliza la función RenderHtmlAsPdf para convertir el HTML a un documento PDF.
  4. Defina el Pie de Página: Los números de página se representan como marcadores de posición en el texto del pie de página HTML.
  5. Agregar Pie de Página y Guardar PDF: Aplique el pie de página al documento y guárdelo como un archivo PDF.

Cómo Añadir Números de Página en PDF usando iTextSharp en C#: Figura 2 - IronPDF: PDF generado con números de página

Para aprender más sobre el código de IronPDF, consulte aquí.

Agregar Números de Página usando iTextSharp

Primero, usemos iTextSharp para generar un nuevo documento PDF. Aquí tienes una ilustración básica de cómo crear un nuevo documento PDF con números de página:

using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            document.Open();
            document.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            document.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table for the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            // Add page number to the table cell
            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);

            // Write the table at the bottom of the page
            table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
        }
    }
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            document.Open();
            document.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            document.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table for the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            // Add page number to the table cell
            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);

            // Write the table at the bottom of the page
            table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
        }
    }
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf

Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create a new PDF document
			Dim document As New Document()
			Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("output.pdf", FileMode.Create))

			' Open the document to add content
			document.Open()
			document.Add(New Paragraph("Hello, world!"))

			' Attach page number event to PDF writer
			writer.PageEvent = New PageNumberEventHandler()

			' Close the document
			document.Close()
		End Sub
	End Class

	Public Class PageNumberEventHandler
		Inherits PdfPageEventHelper

		Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnEndPage(writer, document)

			' Create a table for the page number
			Dim table As New PdfPTable(1)
			table.TotalWidth = 300F
			table.HorizontalAlignment = Element.ALIGN_CENTER

			' Add page number to the table cell
			Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
			cell.Border = 0
			table.AddCell(cell)

			' Write the table at the bottom of the page
			table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Explicación

  1. Crear Documento PDF: Inicializar un nuevo Document y PdfWriter para producir un archivo PDF vacío.
  2. Añadir Contenido: Añadir contenido básico como párrafos al documento.
  3. Numeración de Páginas: Utilizamos manejo de eventos de iTextSharp para incluir números de página. Creamos una clase personalizada que hereda de PdfPageEventHelper.
  4. Sobrescribir OnEndPage: En la clase personalizada, sobrescribimos el método OnEndPage para agregar números de página en la parte inferior de cada página.
  5. Cerrar Documento: Finalizar el documento cerrándolo.

Cómo Añadir Números de Página en PDF usando iTextSharp en C#: Figura 3 - iTextSharp: PDF generado con números de página

Conclusión

En resumen, la especialización, facilidad de uso e integración fluida de IronPDF con entornos .NET lo posicionan como la mejor opción para escenarios que requieren conversión de HTML a PDF y funcionalidades relacionadas, aunque iTextSharp sigue siendo un fuerte competidor en el panorama de bibliotecas de manipulación de PDF en C#. Con IronPDF, puede crear facturas, informes y documentos generados dinámicamente a partir de contenido HTML con la facilidad, efectividad y adaptabilidad requeridas para tener éxito en el entorno de desarrollo moderno.

Una licencia permanente, opciones de actualización y un año de mantenimiento de software están incluidos en la edición Lite de IronPDF. El período de prueba con marca de agua permite a los usuarios evaluar el producto en entornos prácticos. Visite la página de licencias para aprender más. Para más detalles sobre Iron Software, visite su sitio web.

Por favor notaiTextSharp es una marca registrada de su respectivo propietario. Este sitio no está afiliado, respaldado o patrocinado por iTextSharp. Todos los nombres de productos, logotipos y marcas son propiedad de sus respectivos dueños. Las comparaciones son solo para fines informativos y reflejan información públicamente disponible en el momento de la redacción.

Preguntas Frecuentes

¿Cómo puedo agregar números de página a un PDF usando iTextSharp en C#?

Para agregar números de página usando iTextSharp en C#, puedes crear una clase personalizada que herede de PdfPageEventHelper. Sobrescribe el método OnEndPage para insertar números de página y adjunta este evento a la instancia de PdfWriter.

¿Por qué son los PDFs cruciales en varios sectores?

Los PDFs mantienen un formato consistente de texto e imágenes, lo cual es esencial para la creación de documentos y facturación en los sectores corporativos. Son confiables para presentar documentos de manera profesional.

¿Cuáles son las ventajas de usar IronPDF para la manipulación de PDF?

IronPDF ofrece características robustas para crear, ver y editar PDFs dentro de entornos .NET. Destaca en la conversión de HTML, JavaScript e imágenes a PDF y admite encabezados personalizados, pies de página y marcas de agua.

¿Puede IronPDF manejar la conversión de HTML a PDF con soporte para JavaScript?

Sí, IronPDF puede convertir contenido HTML, incluyendo JavaScript, en PDFs manteniendo el diseño y la funcionalidad tal como aparece en un navegador web.

¿Cómo puedo instalar IronPDF en un proyecto C#?

Puedes instalar IronPDF usando el Administrador de Paquetes NuGet en Visual Studio. Simplemente busca 'IronPDF' y agrégalo a tu proyecto para comenzar a usar sus características.

¿Cuál es la importancia del período de prueba ofrecido por IronPDF?

El período de prueba de IronPDF permite a los desarrolladores explorar sus características y funcionalidad en aplicaciones del mundo real con una prueba de agua marcada, ayudándoles a evaluar su idoneidad antes de comprar una licencia.

¿Cómo se compara iTextSharp con IronPDF para agregar números de página?

Mientras que iTextSharp utiliza manejo de eventos para agregar números de página, IronPDF proporciona un enfoque más sencillo con plantillas HTML para encabezados y pies de página, lo que lo hace ideal para desarrolladores .NET que buscan facilidad de uso.

¿Qué se debe considerar al elegir una biblioteca PDF para un proyecto C#?

Considera las características que cada biblioteca ofrece. Por ejemplo, IronPDF se especializa en la conversión de HTML a PDF y se integra bien con los marcos de trabajo .NET, mientras que iTextSharp ofrece fuertes capacidades de encriptación y extracción de texto.

¿iTextSharp es compatible con .NET 10 para agregar números de página o debería usar iText 7?

iTextSharp (versión 5.x) está oficialmente obsoleto y en modo de mantenimiento; solo recibe correcciones de seguridad y no hay actualizaciones de nuevas funciones. No está diseñado para .NET 10 directamente, y su uso en versiones modernas de .NET puede generar limitaciones de compatibilidad. Para proyectos nuevos o para quienes actualicen a .NET 10, se recomienda encarecidamente iText 7 (o iText Core), ya que es compatible con los frameworks más recientes e incluye mejoras respecto a iTextSharp. ([itextpdf.com](https://itextpdf.com/products/itextsharp?utm_source=openai))

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más