Saltar al pie de página
USANDO IRONPDF

Cómo crear un visor de PDF ASP.NET Core MVC con IronPDF

Los navegadores modernos incluyen un visor de PDF integrado que se activa automáticamente cuando una aplicación web sirve archivos PDF con el tipo MIME correcto. Esto elimina la necesidad de herramientas o plugins de terceros, permitiendo a los usuarios visualizar documentos PDF directamente en su navegador. IronPDF, una biblioteca PDF .NET que se actualiza con frecuencia, simplifica la generación, representación y visualización de archivos PDF en aplicaciones ASP.NET Core MVC.

En este artículo, le mostraremos cómo crear una aplicación web ASP.NET Core MVC PDFViewer utilizando el motor de renderizado basado en Chrome de IronPDF. El objetivo principal de esta guía es lograr resultados de píxeles perfectos manteniendo un alto rendimiento.

Empiece con IronPDF ahora.
green arrow pointer

¿Cómo muestran los navegadores modernos los archivos PDF?

Los navegadores modernos como Chrome, Firefox, Edge y Safari incluyen funciones nativas de visualización de PDF. Cuando su aplicación ASP.NET Core devuelve un archivo con el tipo de contenido application/pdf, el navegador renderiza el documento PDF en línea sin necesidad de Adobe Acrobat o plugins externos. Este visor de PDF integrado admite funciones esenciales como la selección de texto, la impresión, los controles de zoom, los marcadores y la navegación por páginas, creando una experiencia completa de visualización de documentos.

Para servir de forma segura los archivos existentes, la mejor práctica es utilizar el entorno de alojamiento para localizarlos en lugar de confiar en las rutas de directorio que pueden cambiar entre el desarrollo y la producción. Además, el uso de un flujo de archivos suele ser más eficiente desde el punto de vista de la memoria que cargar matrices enteras de bytes para documentos de gran tamaño.

using Microsoft.AspNetCore.Mvc;
public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
using Microsoft.AspNetCore.Mvc;
public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Visor PDF: Visualización de nuestro archivo PDF

Cómo crear un PdfViewer MVC de ASP.NET Core con IronPDF: Imagen 1 - Ejemplo de PDF mostrado en el navegador

El código anterior lee un archivo PDF existente del servidor y lo devuelve al navegador. El método File() acepta una matriz de bytes y un tipo de contenido, y ordena al visor de documentos del navegador que renderice el contenido en línea. Este método funciona en todos los navegadores modernos, tanto en ordenadores de sobremesa como en dispositivos móviles, proporcionando una experiencia coherente a todos los usuarios.

¿Cómo pueden los desarrolladores generar documentos PDF de forma dinámica?

Los archivos PDF estáticos son útiles, pero muchas aplicaciones web requieren documentos generados dinámicamente. La clase ChromePdfRenderer de IronPDF convierte el contenido HTML en archivos PDF renderizados de forma profesional. Para empezar, instale IronPDF mediante paquetes NuGet en Visual Studio.

Puede incluir activos externos, como CSS para su tema específico o JavaScript para gráficos, directamente en la cadena HTML.

using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string HTML = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string HTML = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF generado y mostrado en nuestro visor de documentos

Cómo crear un PdfViewer MVC de ASP.NET Core con IronPDF: Imagen 2 - Renderizar un documento PDF a partir de contenido HTML, y luego visualizarlo

Este ejemplo muestra cómo IronPDF transforma una cadena HTML en un documento PDF. El ChromePdfRenderer utiliza un motor basado en Chromium, lo que garantiza un renderizado CSS preciso y compatibilidad con JavaScript. El PDF generado mantiene todo el estilo definido en el cuerpo HTML, lo que lo hace ideal para crear informes, facturas y otros documentos que requieren un formato coherente. El controlador gestiona la solicitud y la aplicación devuelve el resultado renderizado a los usuarios.

Para obtener información adicional y ejemplos de código sobre Conversión de HTML a PDF, explore la completa documentación de IronPDF.

¿Qué opciones existen para la visualización en línea frente a la descarga?

A veces, los usuarios necesitan descargar archivos PDF en lugar de verlos en el navegador. Es posible que tenga un enlace en su página de inicio que dirija a los usuarios a estos informes. Los detalles de cómo el navegador gestiona la respuesta dependen de la cabecera Content-Disposition.

using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Display PDF inline in browser
        return File(pdf.BinaryData, "application/pdf");
    }
    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Display PDF inline in browser
        return File(pdf.BinaryData, "application/pdf");
    }
    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF renderizado y mostrado en línea

Cómo crear un PdfViewer MVC de ASP.NET Core con IronPDF: Image 3 - PDF document being viewed inline after being rendered from URL content

La diferencia entre estas dos acciones del controlador radica en el tercer parámetro del método File(). Cuando se proporciona un nombre de archivo, ASP.NET Core añade automáticamente el encabezado Content-Disposition: attachment, solicitando a los usuarios que descarguen el archivo. Si se omite el parámetro de nombre de archivo, se utiliza el modo de visualización en línea predeterminado.

Esta flexibilidad permite que su aplicación admita ambos escenarios de visualización en función de la solicitud del usuario o de los requisitos del proyecto.

¿Cómo pueden integrarse Razor Pages con la generación de PDF de .NET Core?

Razor Pages en ASP.NET Core MVC proporciona otro enfoque para implementar un control de visor de PDF .NET. El modelo de página puede generar y devolver archivos PDF utilizando la misma funcionalidad de IronPDF.

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        string HTML = $@"
            <html>
            <body>
                <h1>Invoice #{id}</h1>
                <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
                <p>Thank you for your business!</p>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        string HTML = $@"
            <html>
            <body>
                <h1>Invoice #{id}</h1>
                <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
                <p>Thank you for your business!</p>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Cómo crear un PdfViewer MVC de ASP.NET Core con IronPDF: Imagen 4 - PDF generado

Este ejemplo de Razor Pages muestra cómo el controlador OnGet genera un PDF a partir de un parámetro de URL. La propiedad RenderingOptions permite personalizar los márgenes, la orientación de la página y otros ajustes. Para obtener información adicional, explore la documentación sobre opciones de renderizado de IronPDF.

Conclusión

La creación de un visor ASP.NET Core MVC para documentos PDF combina las capacidades nativas del navegador con las potentes funciones de generación de IronPDF. El visor de PDF integrado en los navegadores modernos gestiona las funciones de visualización, impresión y navegación automáticamente cuando el controlador ASP devuelve archivos con el tipo MIME correcto. IronPDF simplifica la creación de documentos PDF profesionales a partir de HTML, URL o archivos existentes con total compatibilidad con CSS, JavaScript y opciones de representación personalizadas.

Tanto si se trata de crear un sencillo visor de documentos para mostrar archivos PDF como de implementar un sistema de generación de informes, IronPDF proporciona las herramientas y funciones necesarias para una integración perfecta de PDF. La biblioteca .NET se integra sin problemas en su aplicación web ASP.NET Core.

Inicie su prueba gratuita para explorar todas las capacidades de IronPDF, o compre una licencia para su uso en producción.

Preguntas Frecuentes

¿Cómo puedo mostrar archivos PDF en aplicaciones ASP.NET Core MVC?

Puede mostrar archivos PDF en aplicaciones ASP.NET Core MVC utilizando IronPDF. Permite generar, procesar y mostrar archivos PDF directamente en el navegador mediante modernos visores de PDF integrados.

¿Necesito plugins de terceros para ver archivos PDF en un navegador?

No, los navegadores modernos tienen visores de PDF integrados que se activan automáticamente al servir archivos PDF con el tipo MIME correcto. IronPDF puede ayudarle a garantizar que sus PDF se sirven correctamente.

¿Cuál es la ventaja de utilizar IronPDF en ASP.NET Core MVC?

IronPDF es una biblioteca PDF .NET que simplifica el proceso de generación y representación de documentos PDF en aplicaciones ASP.NET Core MVC, mejorando la productividad y agilizando la gestión de PDF.

¿Puede IronPDF funcionar con los visores de PDF de navegador existentes?

Sí, IronPDF funciona a la perfección con los visores de PDF existentes en los navegadores, garantizando que los PDF se sirven con el tipo MIME correcto para su visualización automática en el navegador.

¿Se actualiza IronPDF con frecuencia?

Sí, IronPDF es una biblioteca PDF .NET que se actualiza con frecuencia y que ofrece las últimas funciones y mejoras para gestionar documentos PDF en aplicaciones ASP.NET Core MVC.

¿Cómo gestiona IronPDF la generación de PDF en aplicaciones web?

IronPDF ofrece funciones sólidas para generar archivos PDF a partir de diversos tipos de contenido, lo que permite a los desarrolladores crear documentos PDF dinámicos e interactivos dentro de las aplicaciones web.

¿Qué tipo MIME debe utilizarse para servir archivos PDF?

Para garantizar una correcta visualización en los navegadores, los archivos PDF deben servirse con el tipo MIME 'application/pdf'. IronPDF puede ayudar a gestionar este aspecto de forma eficiente.

¿Puedo personalizar la representación de PDF en IronPDF?

Sí, IronPDF ofrece amplias opciones de personalización para renderizar archivos PDF, lo que le permite adaptar el resultado para satisfacer requisitos específicos de diseño y funcionalidad.

¿Es IronPDF compatible únicamente con aplicaciones ASP.NET Core MVC?

Aunque IronPDF es excelente para aplicaciones ASP.NET Core MVC, también es versátil y se puede utilizar con otras aplicaciones .NET para manejar funcionalidades PDF.

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