Saltar al pie de página
USANDO IRONPDF

Cómo crear un visor de PDF en una aplicación web ASP .NET con IronPDF

La creación de aplicaciones web para mostrar documentos PDF es sencilla. Ya se trate de facturas, informes o formularios interactivos, los usuarios esperan una experiencia de visualización de documentos fluida y en el navegador, sin necesidad de Adobe Acrobat Reader ni de herramientas adicionales de terceros.

IronPDF lo hace increíblemente sencillo. Esta biblioteca .NET, que se actualiza con frecuencia, le permite crear, representar y mostrar archivos PDF dentro de su proyecto ASP.NET Core con sólo unas pocas líneas de código. Veamos cómo implementar un control de visor de PDF profesional que gestione desde la simple conversión a HTML hasta complejas vistas Razor.

¿Cómo funciona la visualización de PDF basada en navegador?

La buena noticia es que los navegadores modernos ya incorporan un visor de PDF. Cuando su servidor envía un archivo PDF con el tipo MIME correcto (application/pdf), el navegador lo muestra automáticamente en línea. Esto significa que no necesita plugins externos ni complejas bibliotecas JavaScript del lado del cliente para ver documentos PDF.

La clave está en generar documentos PDF de alta calidad y configurar las cabeceras de respuesta correctas. IronPDF se encarga del trabajo pesado en el lado del servidor, utilizando su motor de renderizado basado en Chrome para crear páginas PDF perfectas a partir de HTML, CSS y JavaScript. ¿El resultado? Sus usuarios obtienen una experiencia nativa de visualización de documentos con funciones como selección de texto, búsqueda, impresión y descarga, todo ello sin ninguna configuración adicional de la interfaz de usuario. El contenido se puede incrustar y mostrar fácilmente.

Este enfoque funciona a la perfección en todas las aplicaciones .NET, tanto si se construye con ASP.NET Core MVC, vistas Razor o incluso proyectos de carpetas web heredadas.

¿Cómo instalar y configurar el PDF Viewer Control?

Empezar a utilizar IronPDF en Visual Studio sólo requiere unos pocos pasos. Abra su proyecto ASP.NET Core e instale el paquete NuGet:

Install-Package IronPdf

A continuación, añada la configuración de la clave de licencia en Program.cs:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Esta es toda la configuración que necesita para que IronPDF se integre plenamente en sus aplicaciones .NET. Consulte la documentación de IronPDF para obtener opciones de configuración adicionales para escenarios avanzados como la implementación de Azure o los contenedores Docker. Puedes empezar con una prueba gratuita para explorar todas las características antes de comprometerte.

¿Cómo generar y mostrar documentos PDF a partir de HTML?

La forma más sencilla de crear un visor de PDF en su aplicación web ASP.NET Core es convirtiendo directamente las cadenas HTML. He aquí un ejemplo de controlador completo:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML with CSS styling
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p class='content'>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Display PDF inline in browser
        Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML with CSS styling
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p class='content'>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Display PDF inline in browser
        Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF de salida visto en el navegador

Cómo crear un visor de PDF en una aplicación web ASP .NET con IronPDF: Image 1 - Image 1 of 3 related to Cómo Crear un Visor PDF en una Aplicación Web ASP .NET con IronPDF

La clase ChromePdfRenderer utiliza Chromium para una renderización precisa, garantizando que su CSS, JavaScript e imágenes se muestren exactamente como se pretendía. Si Content-Disposition está en línea, el navegador mostrará el PDF en lugar de descargarlo.

Esto crea una experiencia de visualización fluida que permite a los usuarios acceder al documento directamente dentro de su interfaz de usuario web. Para documentos con diseños complejos, a menudo se pueden especificar ajustes de renderizado como la anchura y la altura dentro del HTML o utilizando RenderingOptions.

Para más opciones de conversión de HTML, consulte la guía Cadena HTML a PDF.

¿Cómo renderizar archivos PDF a partir de URL y Razor Views?

IronPDF también puede convertir páginas web en vivo en documentos PDF. Es perfecto para generar informes o archivar contenido web:

public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    var pdf = renderer.RenderUrlAsPdf(url);
    Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    var pdf = renderer.RenderUrlAsPdf(url);
    Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
    return File(pdf.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Visor de documentos del navegador que muestra el PDF generado

Cómo crear un visor de PDF en una aplicación web ASP .NET con IronPDF: Image 2 - Image 2 of 3 related to Cómo crear un visor de PDF en una aplicación web ASP .NET con IronPDF

Para convertir vistas Razor a PDF, necesitará un método de ayuda para renderizar primero la vista como HTML. Este método permite reutilizar las plantillas existentes tanto para la visualización web como para la generación de PDF:

public async Task<IActionResult> ViewToPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 1001,
        InvoiceDate = DateTime.Now,
        CustomerName = "Acme Corp.",
        Items = new List<ItemModel>
        {
            new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
            new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
        }
    };
    invoiceModel.TotalAmount = invoiceModel.Items.Sum(i => i.LineTotal);
    // NOTE: RenderViewToStringAsync uses the Request services and ActionContext
    var htmlContent = await RenderViewToStringAsync("Invoice", invoiceModel);
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
    // Use the current HttpContext's service provider (guaranteed available during a request)
    var actionContext = new ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor);
    var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
    var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
    var tempData = tempDataFactory.GetTempData(HttpContext);
    ViewData.Model = model;
    var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
    if (!viewResult.Success)
    {
        // Helpful error for debugging
        var searchedLocations = string.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty<string>());
        throw new InvalidOperationException($"Couldn't find view '{viewName}'. Searched locations:{Environment.NewLine}{searchedLocations}");
    }
    await using var writer = new StringWriter();
    var viewContext = new ViewContext(
        actionContext,
        viewResult.View,
        ViewData,
        tempData,
        writer,
        new HtmlHelperOptions()
    );
    await viewResult.View.RenderAsync(viewContext);
    return writer.ToString();
}
public async Task<IActionResult> ViewToPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 1001,
        InvoiceDate = DateTime.Now,
        CustomerName = "Acme Corp.",
        Items = new List<ItemModel>
        {
            new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
            new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
        }
    };
    invoiceModel.TotalAmount = invoiceModel.Items.Sum(i => i.LineTotal);
    // NOTE: RenderViewToStringAsync uses the Request services and ActionContext
    var htmlContent = await RenderViewToStringAsync("Invoice", invoiceModel);
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
    // Use the current HttpContext's service provider (guaranteed available during a request)
    var actionContext = new ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor);
    var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
    var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
    var tempData = tempDataFactory.GetTempData(HttpContext);
    ViewData.Model = model;
    var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
    if (!viewResult.Success)
    {
        // Helpful error for debugging
        var searchedLocations = string.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty<string>());
        throw new InvalidOperationException($"Couldn't find view '{viewName}'. Searched locations:{Environment.NewLine}{searchedLocations}");
    }
    await using var writer = new StringWriter();
    var viewContext = new ViewContext(
        actionContext,
        viewResult.View,
        ViewData,
        tempData,
        writer,
        new HtmlHelperOptions()
    );
    await viewResult.View.RenderAsync(viewContext);
    return writer.ToString();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado PDF visto

Cómo crear un visor de PDF en una aplicación web ASP .NET con IronPDF: Imagen 3 - PDF renderizado y visualizado en el navegador

Este método de ayuda le garantiza una ruta limpia para convertir el contenido de su vista Razor en una cadena HTML, que IronPDF puede convertir a continuación. El tutorial Razor to PDF tutorial cubre este flujo de trabajo en detalle.

¿Cómo manejar archivos PDF de gran tamaño con streaming?

Al procesar documentos PDF de gran tamaño, el streaming mejora el rendimiento y reduce el uso de memoria. El uso de un MemoryStream permite servir archivos de forma eficiente:

public IActionResult StreamLargePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>");
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
public IActionResult StreamLargePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>");
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Para proyectos ASP.NET Web Forms heredados, puede implementar una funcionalidad similar utilizando manejadores de eventos:

protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(pdf.BinaryData);
    Response.End();
}
protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(pdf.BinaryData);
    Response.End();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

¿Qué funciones admite este control de visor de PDF?

Al aprovechar el visor de PDF nativo del navegador, sus usuarios obtienen automáticamente un rico conjunto de funciones: selección de texto para copiar contenido, funcionalidad de búsqueda para encontrar datos específicos, opciones de impresión para copias físicas y capacidades de descarga para el acceso sin conexión.

Esto también se aplica a situaciones en las que los usuarios necesitan cargar un documento existente para verlo, editarlo o fusionarlo. El procesamiento del lado del servidor de IronPDF gestiona la ejecución de JavaScript, el renderizado de CSS y los formularios, incluidos los elementos interactivos que los usuarios pueden rellenar.

El marco admite la integración de ayudantes de etiquetas, tamaños de página personalizados, encabezados y pies de página, marcas de agua e incluso funciones de edición. Para obtener una descripción completa de las funciones, visite la página Funciones de IronPDF.

Conclusión

Crear un visor de PDF en una aplicación web ASP.NET es notablemente sencillo con IronPDF. Al combinar su potente motor de renderizado con el visor de PDF predeterminado del navegador, obtendrá una solución profesional para mostrar, procesar y manejar archivos PDF en sus aplicaciones web. Tanto si se trata de convertir HTML, URL o vistas Razor, la implementación requiere un código mínimo a la vez que ofrece la máxima funcionalidad.

¿Está listo para implementar la visualización de PDF en su proyecto? Comience con una prueba gratuita de IronPDF y transforme la forma en que su aplicación web .NET Core gestiona los documentos. Para implementaciones de producción, consulte las opciones de licencia que se ajusten a las necesidades de su equipo. ¿Quieres ver más ejemplos de cómo IronPDF destaca en la conversión? Descubra cómo IronPDF gestiona la conversión de DOCX a PDF, la conversión de imágenes a PDF y mucho más en las útiles guías how-to.

Empiece con IronPDF ahora.
green arrow pointer

Preguntas Frecuentes

¿Cómo puedo crear un visor de PDF en una aplicación web ASP.NET?

Puede crear un visor de PDF en una aplicación web ASP.NET utilizando IronPDF. Le permite mostrar documentos PDF directamente dentro de su aplicación, ofreciendo una experiencia de visualización perfecta sin necesidad de herramientas externas como Adobe Acrobat Reader.

¿Cuáles son las ventajas de utilizar IronPDF para la visualización de PDF en ASP.NET?

IronPDF proporciona una experiencia de visualización de PDF fluida e integrada en aplicaciones ASP.NET. Permite mostrar documentos en línea, admite varios tipos de archivos y elimina la necesidad de visores de PDF de terceros, lo que mejora la experiencia del usuario.

¿Puedo mostrar formularios PDF interactivos en mi aplicación web ASP.NET?

Sí, con IronPDF puede mostrar formularios PDF interactivos en su aplicación web ASP.NET. Admite la representación de campos de formulario y elementos interactivos, lo que permite a los usuarios interactuar con los documentos directamente en el navegador.

¿Es posible mostrar facturas e informes utilizando IronPDF en ASP.NET?

Por supuesto, IronPDF es idóneo para mostrar facturas, informes y otros tipos de documentos en aplicaciones ASP.NET. Garantiza que sus documentos se muestren con precisión y eficacia en la aplicación web.

¿Necesito Adobe Acrobat Reader para ver archivos PDF en aplicaciones ASP.NET utilizando IronPDF?

No, no necesita Adobe Acrobat Reader para ver archivos PDF en aplicaciones ASP.NET cuando utiliza IronPDF. Le permite renderizar y ver archivos PDF directamente en el navegador sin dependencias de terceros.

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