iTextSharp para C# (.NET): guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a iTextSharp: qué es y para qué sirve

\n\n

iTextSharp es una potente biblioteca para la generación y procesamiento de documentos PDF en la plataforma .NET (C#, VB.NET, F#). Es un puerto de la popular biblioteca Java iText y brinda a los desarrolladores control total sobre la creación, modificación y lectura de archivos PDF.

\n\n

Principales capacidades de iTextSharp:

\n
    \n
  • Creación de documentos PDF desde cero
  • \n
  • Adición de texto, imágenes, tablas, listas
  • \n
  • Trabajo con fuentes (incluyendo cirílico y Unicode)
  • \n
  • Inserción de hipervínculos, marcadores, metadatos
  • \n
  • Cifrado y protección con contraseña
  • \n
  • Combinación y división de archivos PDF
  • \n
  • Adición de marcas de agua y encabezados/pies de página
  • \n
  • Trabajo con formularios (AcroForms)
  • \n
\n\n

La biblioteca se utiliza ampliamente en aplicaciones empresariales para generar informes, facturas, albaranes, certificados y otros documentos. iTextSharp es compatible con .NET Framework 2.0+ y .NET Core (a través de iTextSharp.LGPLv2.Core).

\n\n

Instalación de iTextSharp

\n\n

Para instalar iTextSharp en un proyecto .NET se utiliza NuGet Package Manager. Existen varias versiones de la biblioteca:

\n\n
    \n
  • iTextSharp (versión antigua 5.x, LGPL) — gratuita, pero con limitaciones
  • \n
  • iTextSharp.LGPLv2.Core — fork para .NET Core / .NET 5+
  • \n
  • iText7 (iText.LGPLv2.Core) — nueva versión de iText 7 para .NET
  • \n
\n\n

Instalación a través de Package Manager Console:

\n
Install-Package iTextSharp.LGPLv2.Core -Version 1.7.0
\n\n

Instalación a través de .NET CLI:

\n
dotnet add package iTextSharp.LGPLv2.Core --version 1.7.0
\n\n

Instalación a través de la interfaz NuGet de Visual Studio:

\n
    \n
  1. Haga clic derecho en el proyecto → "Manage NuGet Packages"
  2. \n
  3. Busque: "iTextSharp.LGPLv2.Core"
  4. \n
  5. Seleccione la versión y haga clic en "Install"
  6. \n
\n\n

Importante: Para trabajar con cirílico y otras fuentes no estándar, se requerirá configuración adicional (consulte la sección "Consejos").

\n\n

Inicio rápido: creación del primer documento PDF

\n\n

Veamos un ejemplo mínimo de creación de un archivo PDF con el texto "Hello, World!":

\n\n
using System.IO;\nusing iTextSharp.text;\nusing iTextSharp.text.pdf;\n\nclass Program\n{\n    static void Main()\n    {\n        // Creamos el documento\n        Document doc = new Document();\n        \n        // Creamos un flujo para escribir en el archivo\n        using (FileStream fs = new FileStream("HelloWorld.pdf", FileMode.Create))\n        {\n            // Obtenemos una instancia de PdfWriter\n            PdfWriter writer = PdfWriter.GetInstance(doc, fs);\n            \n            // Abrimos el documento\n            doc.Open();\n            \n            // Agregamos un párrafo con texto\n            doc.Add(new Paragraph("Hello, World!"));\n            \n            // Cerramos el documento\n            doc.Close();\n        }\n        \n        Console.WriteLine("¡PDF creado exitosamente!");\n    }\n}
\n\n

Este código creará un archivo HelloWorld.pdf en la carpeta del archivo ejecutable. Observe la secuencia: creación de Document → apertura → adición de contenido → cierre.

\n\n

Métodos y funciones principales de iTextSharp

\n\n

Veamos 10 métodos/clases clave de la biblioteca con descripción detallada y ejemplos.

\n\n

1. Document (clase)

\n

Qué hace: Representa el propio documento PDF. Gestiona páginas, márgenes y orientación.

\n

Parámetros del constructor:

\n
    \n
  • Rectangle pageSize — tamaño de página (por ejemplo, PageSize.A4)
  • \n
  • float marginLeft, marginRight, marginTop, marginBottom — márgenes
  • \n
\n

Ejemplo:

\n
// Creación de documento A4 con orientación horizontal y márgenes personalizados\nDocument doc = new Document(PageSize.                    

Recommendations