IRONSOFTWAREHOME
HERRAMIENTAS PDF

Mejor Lector de PDF para iPhone (Comparación de Herramientas Gratuitas y Pagas)

Curtis Chau
Curtis Chau
Updated: 4 de septiembre de 2026

IronPDF ofrece una excelente conversión de HTML a PDF con soporte completo de CSS3 y JavaScript mediante renderizado de Chrome. Por el contrario, iTextSharp ofrece creación de PDF programática pero tiene dificultades con la conversión a HTML moderno, lo que hace que IronPDF sea una mejor opción para aplicaciones ASP.NET MVC que requieren PDF estándar web.

Riesgo compuesto para ISVs en España: Si su empresa desarrolla software de facturación para el mercado español, iTextSharp bajo licencia AGPL presenta una combinación de tres riesgos superpuestos: (1) la obligación copyleft AGPL fuerza a publicar el código fuente de su aplicación propietaria si distribuye el software; (2) la normativa VeriFactu (Royal Decree-Law 15/2025) puede exponer al ISV a sanciones de hasta €150.000/año si el software de facturación que distribuye no cumple con los requisitos de la AEAT - siendo el proveedor de software, no el contribuyente, el sujeto sancionable; (3) el cumplimiento de TicketBAI en el País Vasco exige certificaciones separadas por cada diputación foral (Bizkaia via bizkaia.eus, Gipuzkoa via gipuzkoa.eus, Araba via araba.eus), triplicando la carga de validación. IronPDF, con licencia comercial perpetua, elimina la presión AGPL y ofrece soporte para generación de representaciones PDF de facturas conforme a VERI*FACTU y Facturae dentro de su software certificado. Los ISVs que generan software de facturación para España deben asegurarse de que cada PDF de factura incluya la marca VERI*FACTU y el QR AEAT, obligaciones que IronPDF gestiona localmente sin dependencias cloud y sin riesgos de privacidad bajo la LOPDGDD ni supervisión de la AEPD.

La creación de documentos PDF en aplicaciones ASP.NET MVC es un requisito común para generar informes, facturas y contenido descargable. Si bien iTextSharp ha sido una opción popular durante años, IronPDF ofrece una alternativa moderna con capacidades superiores de representación HTML . Este artículo explora ambos enfoques para ayudarle a tomar una decisión informada para sus necesidades de generación de PDF .NET .

Ambas bibliotecas resuelven el mismo problema central (generar archivos PDF en un contexto web .NET ), pero adoptan enfoques fundamentalmente diferentes. iTextSharp crea archivos PDF mediante programación mediante un modelo de objetos, mientras que IronPDF convierte HTML a PDF mediante un motor de renderizado completo de Chrome. Comprender esta diferencia arquitectónica es clave para seleccionar la herramienta adecuada. El marco ASP.NET MVC de Microsoft admite ambos patrones de integración y cualquiera de las bibliotecas se puede conectar a la canalización de acción del controlador estándar.

¿Cómo instalar cada biblioteca?

Antes de escribir cualquier código, debes incluir cada biblioteca en tu proyecto. NuGet es el administrador de paquetes estándar para .NET y maneja ambas instalaciones de forma limpia. Para iTextSharp, instale el paquete heredado a través de NuGet:

dotnet add package iTextSharp
SHELL

Para IronPDF, instálelo también mediante NuGet :

> dotnet add package IronPdf

IronPDF incluye el motor de renderizado Chrome en el paquete, por lo que no se requiere la instalación de ningún navegador adicional en su servidor. La biblioteca es compatible con entornos Windows, Linux, macOS y contenedores de forma inmediata. Después de la instalación, agregue su clave de licencia de IronPDF durante el inicio de la aplicación.

¿Cómo generar PDF con iTextSharp en MVC?

Para generar archivos PDF utilizando iTextSharp en su aplicación ASP.NET MVC, primero instale la biblioteca a través de NuGet. La biblioteca iTextSharp proporciona control de bajo nivel sobre la creación de PDF a través de su clase de documento y su modelo de objetos.

El siguiente código demuestra una implementación lista para producción para crear archivos PDF con iTextSharp en un controlador MVC:

// Production-ready iTextSharp implementation with proper resource disposal
public class ReportController : Controller
{
    private readonly ILogger<ReportController> _logger;

    public ReportController(ILogger<ReportController> logger)
    {
        _logger = logger;
    }

    public ActionResult GeneratePDF()
    {
        try
        {
            using var memoryStream = new MemoryStream();
            using var document = new Document(PageSize.A4, 50, 50, 25, 25);
            using var writer = PdfWriter.GetInstance(document, memoryStream);

            document.Open();
            document.AddTitle("Generated Report");
            document.AddCreationDate();

            var titleFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 16);
            document.Add(new Paragraph("Hello World", titleFont));
            document.Add(new Paragraph("This is a PDF document created with iTextSharp"));

            var table = new PdfPTable(3);
            table.AddCell("Header 1");
            table.AddCell("Header 2");
            table.AddCell("Header 3");
            document.Add(table);

            document.Close();

            var pdfBytes = memoryStream.ToArray();
            Response.Headers.Add("Content-Disposition", "inline; filename=report.pdf");
            _logger.LogInformation("PDF generated: {Size} bytes", pdfBytes.Length);
            return File(pdfBytes, "application/pdf");
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating PDF");
            return StatusCode(500, "Error generating PDF document");
        }
    }
}

¿Cómo se ve la salida de iTextSharp?

Visor de PDF que muestra un documento simple con el encabezado 'Hola mundo' y el subtítulo 'Este es un documento PDF creado con iTextSharp' sobre un fondo blanco, mostrando las capacidades básicas de formato de texto y tabla de la biblioteca para la generación programática de PDF

Este código demuestra el enfoque fundamental: crear una instancia Document, adjuntar un PdfWriter a una secuencia, agregar contenido usando objetos de elementos y devolver el archivo a través del resultado de una acción. La implementación maneja patrones de eliminación de recursos esenciales para los sistemas de producción. Para escenarios más avanzados, puede configurar tamaños de papel personalizados , administrar la orientación de la página o agregar números de página .

El enfoque programático le brinda un control detallado sobre cada elemento de la página. Esa precisión es útil cuando se generan documentos con diseños fijos, como facturas, certificados o formularios, donde la estructura es siempre la misma. Sin embargo, se convierte en una carga tan pronto como el contenido es dinámico o está controlado por una plantilla HTML.

¿Cuáles son los retos de la conversión de HTML a PDF con la biblioteca iTextSharp?

Aunque iTextSharp destaca en la creación programática de PDF, la conversión de HTML a PDF presenta importantes retos. La clase obsoleta HTMLWorker y su reemplazo XMLWorker tienen un soporte CSS limitado y tienen dificultades con el contenido web moderno, en particular cuando se trata de CSS responsivo y contenido renderizado en JavaScript .

// HTML conversion with iTextSharp -- note the CSS limitations
public class HtmlToPdfController : Controller
{
    private readonly ILogger<HtmlToPdfController> _logger;

    public HtmlToPdfController(ILogger<HtmlToPdfController> logger)
    {
        _logger = logger;
    }

    public async Task<ActionResult> ConvertHtmlAsync(string htmlContent)
    {
        if (string.IsNullOrWhiteSpace(htmlContent))
            return BadRequest("HTML content is required");

        return await Task.Run(() =>
        {
            using var stream = new MemoryStream();
            using var document = new Document(PageSize.A4);
            using var writer = PdfWriter.GetInstance(document, stream);

            document.Open();

            var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
            var fontProvider = new XMLWorkerFontProvider();
            var cssAppliers = new CssAppliersImpl(fontProvider);
            var htmlContext = new HtmlPipelineContext(cssAppliers);
            htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());

            // Pipeline with limited CSS3 support
            var pdf = new PdfWriterPipeline(document, writer);
            var html = new HtmlPipeline(htmlContext, pdf);
            var css = new CssResolverPipeline(cssResolver, html);

            var worker = new XMLWorker(css, true);
            var parser = new XMLParser(worker);

            using var stringReader = new StringReader(htmlContent);
            parser.Parse(stringReader);
            document.Close();

            return File(stream.ToArray(), "application/pdf", "converted.pdf");
        });
    }
}

¿Qué tan bien maneja iTextSharp la representación HTML?

Visor de PDF que muestra un documento de prueba convertido desde HTML, que muestra el formato de texto conservado (negrita, cursiva, texto en línea rojo) y una lista con viñetas, pero falta el fondo amarillo mencionado en el contenido, lo que demuestra las limitaciones de representación de CSS de XMLWorkerHelper

Las limitaciones se hacen evidentes cuando se trabaja con diseños Bootstrap, contenido renderizado en JavaScript o estilos CSS3 complejos. Los problemas comunes incluyen la falta de fuentes web , diseños adaptables defectuosos y la falta de compatibilidad con tipos de medios CSS. Además, iTextSharp tiene problemas con caracteres de idiomas internacionales y gráficos SVG al convertir contenido HTML.

Estas limitaciones no son sólo cosméticas. Cuando una factura o un informe dirigido al cliente se representa incorrectamente porque no aparece un color de fondo o una cuadrícula se contrae, el PDF pierde su propósito. Para los equipos que mantienen plantillas HTML, reconstruir el mismo diseño en el modelo de objetos de iTextSharp significa mantener dos versiones de cada diseño de documento. Esa duplicación agrega costos e introduce una desviación entre la vista web y la salida PDF.

¿Cómo generar archivos PDF a partir de HTML utilizando Chrome Engine?

IronPDF transforma la generación de PDF utilizando un motor de renderizado de Chrome, lo que garantiza una conversión de HTML a PDF perfecta. Instale el paquete NuGet IronPDF para comenzar con un enfoque simplificado en su proyecto de Visual Studio.

using IronPdf;

// Configure IronPDF in Program.cs (top-level statements, .NET 10)
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<ChromePdfRenderer>(_ =>
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop = 10;
    renderer.RenderingOptions.MarginBottom = 10;
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    return renderer;
});

builder.Services.AddMemoryCache();
builder.Services.AddControllersWithViews();

var app = builder.Build();
app.MapControllers();
app.Run();

¿Qué calidad puedes esperar de la representación de Chrome?

Visor de PDF que muestra un documento con un encabezado degradado púrpura que muestra el título 'Generación de PDF moderna' y el subtítulo sobre compatibilidad con CSS3, Bootstrap y JavaScript , lo que demuestra las capacidades avanzadas de representación de degradado CSS3 de IronPDF

El ChromePdfRenderer maneja diseños complejos sin necesidad de soluciones manuales. Es compatible con CSS Grid, Flexbox, fuentes web de Google Fonts y gráficos de JavaScript . La biblioteca también administra los retrasos de renderizado para contenido dinámico y admite la configuración de la ventana gráfica para páginas responsivas. Para conocer las opciones de configuración completas, consulte la referencia de opciones de renderizado .

¿Cómo convertir una vista Razor a PDF en ASP.NET MVC?

IronPDF se destaca por sus capacidades de representación de vistas Razor Engine. Puede convertir vistas completas de Razor directamente a PDF con soporte completo para ViewBag, ViewData y vinculación de modelos. El siguiente ejemplo representa una vista de factura del lado del servidor y la devuelve como un PDF descargable:

// Production-ready Razor view to PDF
public class InvoiceController : Controller
{
    private readonly ChromePdfRenderer _pdfRenderer;
    private readonly IInvoiceService _invoiceService;
    private readonly IRazorViewToStringRenderer _razorRenderer;

    public InvoiceController(
        ChromePdfRenderer pdfRenderer,
        IInvoiceService invoiceService,
        IRazorViewToStringRenderer razorRenderer)
    {
        _pdfRenderer = pdfRenderer;
        _invoiceService = invoiceService;
        _razorRenderer = razorRenderer;
    }

    [HttpGet]
    public async Task<IActionResult> DownloadInvoiceAsync(int id)
    {
        var invoice = await _invoiceService.GetInvoiceAsync(id);
        if (invoice == null) return NotFound();

        var htmlContent = await _razorRenderer.RenderViewToStringAsync(
            "Invoice/InvoiceTemplate", invoice);

        var renderOptions = new ChromePdfRenderOptions
        {
            PaperSize = PdfPaperSize.A4,
            MarginTop = 20,
            MarginBottom = 20,
            PrintHtmlBackgrounds = true,
            CreatePdfFormsFromHtml = true
        };

        var pdf = await Task.Run(() =>
            _pdfRenderer.RenderHtmlAsPdf(htmlContent, renderOptions));

        pdf.MetaData.Title = $"Invoice-{invoice.InvoiceNumber}";
        pdf.MetaData.Subject = $"Invoice for {invoice.CustomerName}";

        var fileName = $"Invoice-{invoice.InvoiceNumber}-{DateTime.UtcNow:yyyyMMdd}.pdf";
        return File(pdf.BinaryData, "application/pdf", fileName);
    }
}

¿Cómo se compara la conversión de Razor View con la creación manual?

Representación en PDF de la página de inicio de una aplicación web ASP.NET Core que muestra un menú de navegación, un encabezado de bienvenida y un pie de página con estilo Bootstrap conservado, lo que demuestra cómo los diseños de páginas web se traducen al formato PDF

Compare esto con el enfoque de iTextSharp, que requiere construir manualmente la estructura del documento en el código. Cada encabezado, celda de tabla, elección de fuente y ajuste de espaciado debe expresarse como un objeto C#. No existe ninguna plantilla HTML que se pueda iterar en un navegador; Cada cambio requiere un ciclo de compilación y verificación con la salida PDF.

La integración de Razor de IronPDF le permite reutilizar vistas de Razor , archivos HTML o cadenas HTML existentes para la generación de PDF. También puede trabajar con archivos ZIP HTML o implementar configuraciones de URL base para la carga de activos. La guía práctica de conversión de CSHTML a PDF explica todo el patrón de representación de Razor , incluida la configuración de la inyección de dependencia.

¿Cómo se gestionan las descargas de archivos y el streaming para crear un PDF?

Ambas bibliotecas admiten varios métodos de salida para archivos PDF en aplicaciones web. IronPDF ofrece funciones adicionales como compresión de PDF, linealización para visualización web rápida y rasterización de imágenes. El controlador de transmisión a continuación demuestra cómo manejar archivos PDF grandes con almacenamiento en caché y soporte de solicitud de rango:

// Streaming controller for large PDFs
public class StreamingPdfController : Controller
{
    private readonly ChromePdfRenderer _ironPdfRenderer;
    private readonly IMemoryCache _cache;

    public StreamingPdfController(ChromePdfRenderer ironPdfRenderer, IMemoryCache cache)
    {
        _ironPdfRenderer = ironPdfRenderer;
        _cache = cache;
    }

    [HttpGet]
    public async Task<IActionResult> StreamLargePdf(string reportId)
    {
        var cacheKey = $"pdf_stream_{reportId}";
        if (_cache.TryGetValue<byte[]>(cacheKey, out var cachedPdf))
            return File(cachedPdf, "application/pdf", $"report_{reportId}.pdf");

        Response.ContentType = "application/pdf";
        Response.Headers.Add("Content-Disposition",
            $"attachment; filename=large_report_{reportId}.pdf");

        await using var stream = Response.BodyWriter.AsStream();
        var html = await GenerateLargeHtmlReport(reportId);
        var pdf = _ironPdfRenderer.RenderHtmlAsPdf(html);
        pdf.SaveAs(stream);

        if (pdf.BinaryData.Length < 10_000_000)
            _cache.Set(cacheKey, pdf.BinaryData, TimeSpan.FromMinutes(30));

        return new EmptyResult();
    }

    [HttpGet]
    public IActionResult DownloadWithRangeSupport(string documentId)
    {
        var pdfBytes = GetPdfBytes(documentId);
        return File(pdfBytes, "application/pdf",
            $"document_{documentId}.pdf", enableRangeProcessing: true);
    }
}

Para escenarios avanzados, IronPDF admite la generación de PDF en paralelo, el procesamiento de múltiples subprocesos y las operaciones por lotes . Puede implementar un registro personalizado , manejar la autenticación de red, trabajar con cookies y agregar encabezados de solicitud HTTP para la generación segura de documentos.

¿Cómo se comparan las dos bibliotecas una al lado de la otra?

La siguiente tabla resume las diferencias clave entre iTextSharp y IronPDF para proyectos ASP.NET MVC:

iTextSharp vs. IronPDF : Comparación de características para ASP.NET MVC
FuncióniTextSharpIronPDF
renderizado de HTML a PDFLimitado (XMLWorker, sin CSS3 moderno)Motor Chrome completo (CSS3, JS, Flexbox)
Compatibilidad con Razor y CSHTMLSin soporte nativoRepresentación de vista Razor incorporada
Seguridad de hilosRequiere bloqueo manualHilos seguros por defecto
API asíncronaSin asincrónico nativoSoporte asincrónico completo
Linux / DockerSoportadoSoportado
Tipo de licenciaAGPL (código abierto) o comercialComercial con prueba gratuita
Firmas digitalesSíSí
formularios PDFSí (manual)Sí (desde elementos de formulario HTML)

iTextSharp ofrece un control detallado para la creación programática de PDF, lo que lo convierte en una opción viable cuando la estructura del documento es simple y fija. IronPDF es la opción más sólida cuando necesita convertir plantillas HTML o vistas Razor en documentos PDF profesionales con representación precisa , compatibilidad total con CSS3 y ejecución de JavaScript .

Para aplicaciones ASP.NET de producción, IronPDF ofrece soporte asincrónico superior e integración con patrones .NET modernos, incluidas inyección de dependencia y canalizaciones de middleware. Su capacidad para representar vistas Razor , admitir firmas digitales y manejar diseños complejos lo convierten en la opción preferida para aplicaciones empresariales. La biblioteca también admite aplicaciones Blazor Server y compatibilidad con PDF/A para documentos de archivo.

¿Qué pasa con las licencias y los proyectos?

La biblioteca iTextSharp utiliza una licencia AGPL para su versión de código abierto, lo que requiere que el código de su aplicación también sea de código abierto. iText Group ofrece licencias comerciales para proyectos propietarios. Esta consideración de licencia es particularmente importante para productos SaaS o herramientas empresariales internas donde no se puede publicar el código fuente.

Contexto específico para España: En el mercado español, la exposición AGPL de iTextSharp se agrava por el régimen de VeriFactu. Los ISVs que distribuyen software de facturación a contribuyentes españoles son sujetos directos de las sanciones administrativas de la AEAT (hasta €150.000/año) si el software no cumple los requisitos técnicos de VeriFactu - incluyendo la generación de la marca VERI*FACTU en las representaciones PDF. Además, si el sistema opera en el País Vasco, se requieren certificaciones separadas por cada autoridad foral: Bizkaia (BATUZ), Gipuzkoa y Araba - cada una con especificaciones TicketBAI propias. Usar iTextSharp bajo AGPL en este contexto significa o bien publicar el código fuente de su sistema de facturación (inaceptable para la mayoría de ISVs), o bien adquirir una licencia comercial de iText que se sume al coste total de propiedad. IronPDF, con licencia perpetua comercial sin obligaciones copyleft, evita esta triple carga.

IronPDF utiliza un modelo de licencia comercial con una prueba gratuita para desarrollo y pruebas. Las licencias se escalan según el entorno de implementación: desarrollador, servidor único u opciones de implementación ilimitadas. Al implementar cualquiera de las soluciones, considere escenarios de implementación que incluyan entornos Docker, Azure y Linux.

Las consideraciones de rendimiento para escenarios de alto tráfico incluyen la implementación de operaciones asincrónicas, administración adecuada de la memoria y estrategias de almacenamiento en caché. El motor Chrome de IronPDF ofrece un rendimiento superior para la representación de HTML complejo, mientras que iTextSharp puede ser más eficiente para la generación de PDF programático simple sin HTML involucrado. Para las aplicaciones que generan cientos de archivos PDF por minuto, la evaluación comparativa bajo una carga realista es la guía más confiable para saber qué biblioteca se adapta a su infraestructura.

La migración de iTextSharp a IronPDF es sencilla para la mayoría de los proyectos MVC. El cambio principal consiste en reemplazar el código de creación manual de documentos con una plantilla HTML generada por el motor de Chrome. IronPDF proporciona documentación exhaustiva , ejemplos de código y soporte de ingeniería para facilitar las transiciones.

¿Cuales son tus próximos pasos?

Para proyectos nuevos que requieren conversión de HTML a PDF con soporte para estándares web modernos, IronPDF ofrece una clara ventaja con su renderizado basado en Chrome. Los proyectos heredados que ya utilizan iTextSharp para la creación básica de PDF pueden continuar con su implementación actual a menos que la precisión de la representación HTML se convierta en un requisito.

Comience con la prueba gratuita de IronPDF y pruébelo directamente con sus vistas Razor o plantillas HTML existentes. Explore la documentación completa y la referencia API para ver qué tan rápido se realiza la integración. Si tiene preguntas sobre la migración de un proyecto existente basado en iTextSharp o necesita orientación sobre el manejo del flujo de memoria PDF y la conformidad con PDF/A , el equipo de soporte está disponible para ayudarlo.

Para obtener una visión más amplia de cómo se compara IronPDF con la familia de productos iText, consulte la página de comparación dedicada a iText vs. IronPDF .

Por favor nota: iTextSharp 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.
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 estructurados y visualmente atractivos.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999