Saltar al pie de página
USANDO IRONPDF

Cómo crear un visor de PDF en ASP.NET Core: Figura 1

Para implementar un visor de PDF en ASP.NET Core, use IronPDF para generar archivos PDF a partir de HTML , URL o vistas de Razor . Sírvalos con encabezados adecuados para su visualización en línea en el navegador, brindando una experiencia de visualización de documentos fluida sin necesidad de complementos o descargas externas.

La creación de una aplicación web en .NET a menudo requiere mostrar documentos PDF directamente en el navegador. Ya sean facturas , informes o formularios PDF interactivos , los usuarios esperan una experiencia fluida de visualización de documentos sin necesidad de Adobe Acrobat Reader u otras herramientas de navegador de terceros.

En este tutorial, aprenderá a implementar un visor de PDF para ASP.NET y .NET Core usando IronPDF . Este confiable control de visualización de PDF permite a los desarrolladores crear , renderizar y mostrar archivos PDF dentro de sus aplicaciones .NET, proporcionando una solución profesional para manejar documentos críticos para el negocio.

¿Cómo funciona la visualización de PDF en ASP.NET Core?

Los navegadores modernos actúan como visores de PDF integrados. Al servir un archivo PDF con el tipo MIME correcto (application/pdf), el navegador lo muestra automáticamente en línea. Esto significa que no necesita complementos externos para ver documentos o archivos PDF. La clave está en generar PDF de alta calidad y configurar los encabezados de respuesta correctos.

IronPDF es una biblioteca PDF .NET que se actualiza con frecuencia y que se destaca en la creación de páginas PDF con píxeles perfectos a partir de HTML , vistas Razor o documentos existentes . Su renderizado basado en Chrome garantiza una compatibilidad precisa con CSS , JavaScript e imágenes , brindando a los usuarios una experiencia de visualización similar a la de un visor de PDF de escritorio.

¿Por qué debería configurar primero un proyecto ASP.NET Core?

Comience creando una nueva aplicación ASP.NET Core MVC :

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp

Este andamiaje crea una aplicación .NET básica con soporte MVC. Luego puede instalar los paquetes NuGet de IronPDF necesarios para el procesamiento y la representación de PDF .

¿Cómo instalar y configurar IronPDF?

Instalar IronPDF lleva solo unos pocos pasos. Abra la consola del Administrador de paquetes en Visual Studio y ejecute:

Install-Package IronPdf

O utilizando la CLI de .NET:

dotnet add package IronPdf

Configura IronPDF en tu Program.cs o Startup.cs:

// Add this at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key
// Add this at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key
$vbLabelText   $csharpLabel

Una vez instalado, configure su clave de licencia en Program.cs. La documentación de IronPDF proporciona información adicional y ejemplos de configuración. Para la implementación , asegúrese de estar utilizando el método de instalación correcto para su entorno de destino.

¿Cómo puedes generar archivos PDF para visualizarlos?

IronPDF le permite crear archivos PDF a partir de HTML sin formato, páginas web o vistas Razor . El documento PDF generado se puede luego mostrar en línea con sólo unas pocas líneas de código fuente C#. Por ejemplo, al utilizar ChromePdfRenderer , puede renderizar HTML y devolverlo al navegador como un archivo PDF que se muestra dentro de su control de visor de PDF ASP.NET.

Este enfoque evita forzar una descarga y brinda a los usuarios la posibilidad de ver , imprimir , buscar y guardar archivos PDF directamente dentro de su formulario web o proyecto Blazor .

¿Cómo crear archivos PDF a partir de cadenas HTML?

El enfoque más simple convierte HTML directamente a PDF:

using IronPdf;
public class PdfController : Controller
{
    public IActionResult GenerateFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #333; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF to browser for viewing
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
public class PdfController : Controller
{
    public IActionResult GenerateFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #333; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF to browser for viewing
        return File(pdf.BinaryData, "application/pdf");
    }
}
$vbLabelText   $csharpLabel

Este ejemplo muestra cómo generar un PDF directamente desde una cadena HTML . Se crea un ChromePdfRenderer , que utiliza Chromium para una representación precisa. El HTML (con CSS en línea ) se pasa a RenderHtmlAsPdf , produciendo un PdfDocument . Devolver el archivo con el tipo MIME application/pdf garantiza que el navegador lo muestre en línea. Esto resulta útil para generar informes o facturas dinámicamente en ASP.NET Core .

¿Cuándo debería generar archivos PDF a partir de URL?

Convertir páginas web existentes en archivos PDF:

public IActionResult GenerateFromUrl(string url = "___PROTECTED_URL_133___")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.JavaScript(3000);
    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 GenerateFromUrl(string url = "___PROTECTED_URL_133___")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.JavaScript(3000);
    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");
}
$vbLabelText   $csharpLabel

Aquí, IronPDF convierte una página web en vivo en un PDF. El método RenderUrlAsPdf obtiene la página, aplica estilos y scripts y genera un PDF pulido. Si se establece el encabezado Content-Disposition en línea, el archivo se abre en el visor de PDF del navegador. Las opciones de representación de JavaScript garantizan que el contenido dinámico se cargue correctamente. Esto es ideal para archivar o compartir contenido web como un documento PDF .

Resultado

Aplicación web de visor de PDF que muestra la documentación de IronPDF para .NET con los botones Generar desde HTML, Generar desde URL e Imprimir en la parte superior.

¿Cómo puedes convertir vistas de Razor a PDF?

Transforme sus vistas de Razor en archivos PDF de forma dinámica:

public async Task<IActionResult> ViewToPdf()
{
    // Render the view to HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        return sw.ToString();
    }
}
public async Task<IActionResult> ViewToPdf()
{
    // Render the view to HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        return sw.ToString();
    }
}
$vbLabelText   $csharpLabel

Este fragmento convierte las vistas de Razor en archivos PDF. La vista primero se procesa en una cadena HTML con RenderViewToString y luego se convierte usando RenderHtmlAsPdf . El resultado se devuelve como un archivo visible en el navegador. Esto permite reutilizar las plantillas de Razor (como las facturas) tanto para la visualización web como para la generación de PDF , garantizando así la coherencia. Para los proyectos de MVC Framework , enfoques similares funcionan con ajustes menores.

¿Cómo se muestran los archivos PDF en el navegador?

La clave para mostrar archivos PDF en línea (en lugar de descargarlos) radica en configurar los encabezados de respuesta correctos. Los navegadores modernos admiten la visualización de PDF en línea cuando están configurados correctamente.

¿Cuál es el enfoque básico para la visualización en línea?

public IActionResult ViewPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    Response.Headers.Add("Content-Disposition", "inline");
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult ViewPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    Response.Headers.Add("Content-Disposition", "inline");
    return File(pdf.BinaryData, "application/pdf");
}
$vbLabelText   $csharpLabel

Este ejemplo fuerza a un PDF a mostrarse en línea en lugar de descargarse. Una cadena HTML simple se convierte con RenderHtmlAsPdf y el encabezado Content-Disposition se configura como en línea. Es una forma rápida de previsualizar los archivos PDF generados directamente en el navegador. Puedes mejorar esto con encabezados y pies de página o marcas de agua .

Resultado

Captura de pantalla de PdfViewerApp que muestra un visor de PDF con el texto "Hola mundo" y controles de navegación y botones de acción para generar desde HTML, generar desde URL e imprimir.

¿Cómo puedo habilitar la carga dinámica de PDF?

Carga diferentes PDFs sin refrescar la página:

[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
// Load PDF dynamically
function loadPdf(pdfId) {
    const frame = document.getElementById('pdfFrame');
    frame.src = `/Pdf/GetPdf?id=${pdfId}`;
}
[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
// Load PDF dynamically
function loadPdf(pdfId) {
    const frame = document.getElementById('pdfFrame');
    frame.src = `/Pdf/GetPdf?id=${pdfId}`;
}
$vbLabelText   $csharpLabel

Este código carga dinámicamente diferentes PDFs en el visor. El controlador proporciona una lista de PDFs y los genera bajo demanda. La función loadPdf de JavaScript actualiza el<iframe> fuente sin recargar la página, lo que permite cambiar rápidamente entre documentos. Considere implementar métodos asincrónicos para obtener un mejor rendimiento con documentos grandes.

¿Cómo implementar funciones de visualización avanzadas?

Mejore su visor de PDF con funcionalidad adicional:

public class AdvancedPdfController : Controller
{
    // Add zoom controls
    public IActionResult ViewWithZoom()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.ViewPortWidth = 1024;
        renderer.RenderingOptions.Zoom = 150; // 150% zoom
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        return File(pdf.BinaryData, "application/pdf");
    }

    // Enable text search
    public IActionResult SearchablePdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        var pdf = renderer.RenderHtmlAsPdf(htmlWithForms);
        // PDF text is searchable by default
        return File(pdf.BinaryData, "application/pdf");
    }
}
public class AdvancedPdfController : Controller
{
    // Add zoom controls
    public IActionResult ViewWithZoom()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.ViewPortWidth = 1024;
        renderer.RenderingOptions.Zoom = 150; // 150% zoom
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        return File(pdf.BinaryData, "application/pdf");
    }

    // Enable text search
    public IActionResult SearchablePdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        var pdf = renderer.RenderHtmlAsPdf(htmlWithForms);
        // PDF text is searchable by default
        return File(pdf.BinaryData, "application/pdf");
    }
}
$vbLabelText   $csharpLabel

Estos ejemplos demuestran el control de la ventana gráfica y la creación de formularios . Las opciones de renderizado proporcionan un control detallado sobre la generación de PDF. Habilite la extracción de texto para la funcionalidad de búsqueda y campos de formulario para documentos interactivos.

¿Qué hay de las consideraciones de implementación?

IronPDF funciona en proyectos ASP.NET , ASP.NET Core y Blazor Server . Puede alojarlo en un servidor , implementarlo en Azure o contenerizarlo con Docker . Dado que es una biblioteca que se actualiza con frecuencia y cuenta con soporte activo , puede confiar en ella para el procesamiento profesional de documentos.

¿Cómo se realiza la implementación en Azure?

Al implementar en Azure App Service , IronPDF funciona sin problemas con una configuración mínima. Asegúrese de que su plan de App Service sea al menos del nivel B1 para obtener un rendimiento óptimo. IronPDF gestiona automáticamente la implementación del motor de renderizado de Chrome . Por favor, consulta aquí nuestra documentación sobre la selección del nivel adecuado de Azure. Considere usar Azure Functions para la generación de PDF sin servidor.

¿Qué pasa con el soporte de Docker?

Para implementaciones en contenedores , IronPDF proporciona compatibilidad con Docker . Agrega esto a tu Dockerfile:

# Install IronPDF dependencies
RUN apt-get update && apt-get install -y libgdiplus

Para implementaciones de Linux , es posible que se requieran dependencias adicionales. Consulte la guía de instalación para conocer los requisitos específicos de la plataforma. Considere utilizar IronPDF Slim para tamaños de contenedores reducidos.

¿Qué son los consejos clave de rendimiento?

¿Cómo solucionar problemas comunes?

¿Por qué tu PDF no se muestra en línea?

Si los PDFs se descargan en lugar de mostrarse:

// Ensure Content-Disposition is set correctly
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
// Ensure Content-Disposition is set correctly
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
$vbLabelText   $csharpLabel

Verifique la compatibilidad del navegador y asegúrese de que el tipo MIME sea correcto. Algunos navegadores más antiguos pueden requerir una configuración adicional.

¿Cómo se manejan los problemas de origen cruzado?

Al cargar PDFs desde dominios diferentes:

// Add CORS headers if needed
Response.Headers.Add("Access-Control-Allow-Origin", "*");
// Add CORS headers if needed
Response.Headers.Add("Access-Control-Allow-Origin", "*");
$vbLabelText   $csharpLabel

Para entornos seguros , configure las políticas CORS adecuadamente. Considere los requisitos de autenticación para los documentos protegidos.

¿Qué pasa con los archivos PDF grandes?

Para documentos grandes, considere la transmisión :

public async Task<IActionResult> StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
public async Task<IActionResult> StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
$vbLabelText   $csharpLabel

Implementar paginación para documentos muy grandes. Utilice compresión para reducir el ancho de banda. Considere la representación asincrónica para mejorar el rendimiento.

¿Cuáles son los próximos pasos?

Crear un visor de PDF en ASP.NET Core no tiene por qué ser complejo. Al combinar el motor de renderizado de IronPDF con el visor de PDF predeterminado del navegador, obtiene una solución profesional e intuitiva para visualizar, editar y gestionar archivos PDF en línea. Ya sea que necesite renderizar facturas , integrar informes dinámicos o crear un visor de documentos para aplicaciones móviles , este enfoque ofrece el equilibrio perfecto entre funcionalidades, escalabilidad y rendimiento.

¿Buscas un tutorial completo con código fuente funcional? Descargue nuestro proyecto de muestra gratuito y explore cómo IronPDF puede ayudarlo a integrar un visor de PDF moderno, seguro y flexible para ASP.NET hoy. Consulte nuestra referencia de API para obtener documentación detallada y ejemplos de código .

¿Listo para implementar la visualización de PDF en tu aplicación ASP.NET Core? Empieza con una prueba gratuita de IronPDF y transforma las capacidades de manejo de documentos de tu aplicación web hoy.

Empiece con IronPDF ahora.
green arrow pointer

Preguntas Frecuentes

¿Cuál es la mejor forma de mostrar documentos PDF en una aplicación ASP.NET?

Usar IronPDF permite a los desarrolladores renderizar fácilmente documentos PDF directamente en el navegador dentro de una aplicación ASP.NET, proporcionando una experiencia de usuario fluida sin necesidad de herramientas de terceros como Adobe Acrobat Reader.

¿Se puede usar IronPDF para mejorar la visualización de PDF en aplicaciones web?

Sí, IronPDF está diseñado para mejorar la visualización de PDF permitiendo una integración fluida en aplicaciones web, asegurando que los usuarios puedan ver documentos PDF con facilidad y eficiencia.

¿Necesito herramientas adicionales para ver PDFs al usar IronPDF en ASP.NET?

No, IronPDF elimina la necesidad de herramientas adicionales como Adobe Acrobat Reader, ofreciendo una solución integrada para ver PDFs directamente en aplicaciones ASP.NET.

¿Cómo puedo implementar un visor de PDF en mi aplicación web .NET?

Al integrar IronPDF en tu aplicación web .NET, puedes implementar un visor de PDF potente que soporte varias funcionalidades de PDF y ofrezca una interfaz fácil de usar.

¿Por qué debería usar IronPDF para la visualización de PDF en ASP.NET?

IronPDF proporciona una solución confiable y eficiente para la visualización de PDF en aplicaciones ASP.NET, permitiendo a los desarrolladores ofrecer a los usuarios una experiencia fluida sin depender de complementos externos.

¿Es posible mostrar formularios PDF interactivos usando IronPDF?

Sí, IronPDF soporta la visualización de formularios PDF interactivos, permitiendo a los usuarios llenar e interactuar con documentos PDF directamente dentro del navegador.

¿Qué tipos de documentos PDF se pueden ver usando IronPDF?

IronPDF puede manejar varios tipos de documentos PDF, incluyendo facturas, informes y formularios interactivos, lo que lo convierte en una herramienta versátil para cualquier aplicación ASP.NET.

¿IronPDF es compatible con .NET 10 para la generación y visualización de PDF?

Sí. IronPDF es totalmente compatible con .NET 10, así como con versiones anteriores como .NET 9, 8, 7, 6, y .NET Core y Framework. Esto significa que puede usar IronPDF en aplicaciones modernas .NET 10 ASP.NET o Blazor para generar, servir y mostrar archivos PDF en línea en el navegador. (ironpdf.com)

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