Saltar al pie de página
USANDO IRONPDF

Crear un visor de PDF en ASP.NET Core MVC | Tutorial

Cree un visor de PDF ASP.NET Core MVC usando el motor de renderizado basado en Chrome de IronPDF para mostrar archivos PDF en línea en los navegadores, generar PDF dinámicos a partir de contenido HTML y controlar si los usuarios ven o descargan documentos, todo sin complementos ni dependencias externas.

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 de PDF .NET con un motor de renderizado basado en Chrome, facilita la generación, renderización y visualización de archivos PDF dentro de aplicaciones ASP.NET Core MVC.

Empiece con IronPDF ahora.
green arrow pointer

¿Cómo instalar IronPDF en un proyecto ASP.NET Core MVC?

Antes de crear un visor de PDF en ASP.NET Core MVC, debe agregar IronPDF a su proyecto. La ruta más rápida es a través del Administrador de paquetes NuGet en Visual Studio, o mediante la línea de comandos utilizando la CLI de .NET o la Consola del Administrador de paquetes.

Install-Package IronPdf
dotnet add package IronPdf
Install-Package IronPdf
dotnet add package IronPdf
SHELL

Una vez que el paquete está instalado, añade el espacio de nombres IronPdf a tus archivos de controlador y estarás listo para empezar a generar y servir documentos PDF. IronPDF está dirigido a .NET 8 y .NET 10, por lo que funciona con las últimas versiones de ASP.NET Core sin ninguna configuración adicional.

Para proyectos que requieren instalación sin conexión o fijación de versiones específicas, también puede descargar el paquete NuGet directamente y agregarlo como una fuente local. La página de licencias de IronPDF cubre las opciones de licencia de prueba y producción si las necesita antes de salir al aire.

¿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 tu 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 requerir Adobe Acrobat o complementos externos. Este visor de PDF integrado admite selección de texto, impresión, controles de zoom, marcadores y navegación de páginas, creando una experiencia de visualización de documentos que los usuarios ya comprenden.

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. El uso de un flujo de archivos también es más eficiente en términos de memoria que cargar matrices de bytes completas para documentos grandes.

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");
    }
}
Imports Microsoft.AspNetCore.Mvc

Public Class DocumentController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        ' Path to an existing PDF file in the wwwroot folder
        Dim path As String = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf")
        Dim fileBytes As Byte() = System.IO.File.ReadAllBytes(path)
        ' Return file for inline browser display
        Return File(fileBytes, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

¿Cómo se ve un PDF cuando se muestra en el navegador?

Un documento PDF sobre '¿Qué es un PDF?' mostrado en un navegador web en localhost:7162/Pdf/ViewPdf, mostrando contenido de texto formateado en una interfaz de visor de PDF con controles de zoom y opciones de navegación

El código anterior lee un archivo PDF existente del servidor y lo devuelve al navegador. El método File() acepta un array de bytes y un tipo de contenido, instruyendo al visor de documentos del navegador a renderizar el contenido en línea. Este enfoque funciona en todos los navegadores modernos tanto en dispositivos de escritorio como móviles, proporcionando una experiencia consistente para todos los usuarios.

Para escenarios más avanzados, es posible que desee cargar archivos PDF desde la memoria o Azure Blob Storage , lo que puede mejorar la escalabilidad y reducir los requisitos de almacenamiento del servidor. La documentación de Microsoft sobre cómo servir archivos estáticos en ASP.NET Core cubre las mejores prácticas para el manejo de archivos en producción.

¿Cómo generar documentos PDF dinámicamente en ASP.NET Core?

Los archivos PDF estáticos son útiles, pero muchas aplicaciones web requieren documentos generados dinámicamente adaptados al usuario o solicitud actual. La clase ChromePdfRenderer de IronPDF convierte el contenido HTML en archivos PDF profesionalmente renderizados utilizando un motor de navegador Chromium real bajo el capó.

Puede incluir recursos externos, como CSS para su tema específico o JavaScript para gráficos , directamente en la cadena HTML. El motor de renderizado admite estándares web modernos, incluidos CSS3, JavaScript ES6+ y fuentes web , por lo que el PDF generado se ve exactamente como el navegador renderizaría la misma página 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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class ReportController
    Inherits Controller

    Public Function GenerateReport() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        ' HTML content with CSS styling
        Dim html As String = "
            <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>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

¿Cómo aparece el contenido HTML después de la generación del PDF?

Visor de PDF mostrando un informe de ventas mensual con texto de encabezado formateado y fecha de generación, demostrando la conversión de HTML a PDF con estilo CSS personalizado aplicado a través de IronPDF

Este ejemplo demuestra cómo IronPDF transforma una cadena HTML en un documento PDF . El ChromePdfRenderer utiliza un motor basado en Chromium, asegurando un renderizado preciso del CSS y soporte de JavaScript. El PDF generado mantiene todo el estilo definido en el HTML, lo que lo hace ideal para crear informes , facturas y otros documentos que requieren un formato consistente.

Para obtener ejemplos de código adicionales sobre la conversión de HTML a PDF , explore la documentación de IronPDF. También puedes generar archivos PDF a partir de vistas CSHTML de Razor , URL o incluso contenido Markdown .

¿Cómo controlar la visualización en línea frente a la descarga de archivos?

A veces, los usuarios necesitan descargar archivos PDF en lugar de verlos en el navegador. La forma en que el navegador maneja la respuesta depende del encabezado Content-Disposition. Comprender esta distinción es importante para ofrecer la experiencia adecuada en su aplicación.

Cuando omites el parámetro de nombre de archivo en el método File(), ASP.NET Core no establece un encabezado Content-Disposition, por lo que el navegador utiliza su comportamiento predeterminado, que suele ser la visualización en línea. Cuando proporcionas un nombre de archivo como tercer parámetro, ASP.NET Core añade automáticamente Content-Disposition: attachment, incitando a los usuarios a guardar el archivo en su lugar.

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // 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();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class PdfController
    Inherits Controller

    Public Function DisplayInline() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 25
        renderer.RenderingOptions.MarginBottom = 25

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Display PDF inline in browser -- no filename = inline
        Return File(pdf.BinaryData, "application/pdf")
    End Function

    Public Function DownloadPdf() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
        renderer.RenderingOptions.EnableJavaScript = True

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Prompt download with specified filename
        Return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

¿Cuándo debería utilizar la visualización en línea en lugar de la descarga?

Captura de pantalla mostrando la página principal de Wikipedia convertida a formato PDF y mostrada en línea en una ventana del navegador con controles de visor de PDF, incluyendo zoom, navegación por página y opciones de impresión

La diferencia entre las dos acciones del controlador se reduce a ese tercer parámetro en File(). Esta flexibilidad permite que su aplicación admita ambos escenarios según las necesidades del usuario o los requisitos del negocio. Para un mejor control, también puede establecer encabezados HTTP personalizados o configurar el tamaño del papel y la orientación antes de renderizar.

Algunas aplicaciones combinan ambos enfoques: un punto final de vista previa que muestra el PDF en línea y un punto final de descarga independiente que activa el guardado del archivo. Este patrón brinda a los usuarios visibilidad del documento antes de comprometerse a descargarlo.

¿Cómo integrar Razor Pages con la generación de PDF?

Razor Pages en ASP.NET Core MVC proporciona otro enfoque para implementar un visor de PDF .NET . El modelo de página puede generar y devolver archivos PDF utilizando la misma funcionalidad IronPDF disponible en los controladores MVC estándar. Este patrón funciona bien para aplicaciones que ya utilizan Razor Pages, ya que mantiene la lógica de generación de PDF ubicada junto a la página que la activa.

El controlador OnGet en una página Razor actúa como una acción de controlador: recibe la solicitud, realiza el trabajo y devuelve un resultado. Devolver un FileResult desde un modelo de página es compatible con ASP.NET Core y funciona de la misma manera que devolver File() desde un controlador.

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>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();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages

Public Class InvoiceModel
    Inherits PageModel

    Public Function OnGet(id As Integer) As IActionResult
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4

        ' Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document"
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
        renderer.RenderingOptions.TextFooter.FontSize = 10

        Dim html As String = $"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

¿Qué opciones de renderizado están disponibles para la personalización de PDF?

Visor de PDF mostrando la Factura #20 con formato profesional, incluyendo encabezados estilizados, información de fecha de vencimiento y un mensaje de agradecimiento en una interfaz de navegador con tema oscuro

Este ejemplo de Razor Pages demuestra cómo el controlador OnGet genera un PDF a partir de un parámetro de URL. La propiedad RenderingOptions permite un control detallado sobre márgenes, orientación de página y otras configuraciones de diseño. También puede agregar encabezados y pies de página , configurar números de página o configurar tamaños de papel personalizados .

Las funciones avanzadas disponibles a través de RenderingOptions incluyen marca de agua, compresión de PDF, y firmas digitales. Para obtener detalles completos sobre cada opción disponible, consulte la referencia de opciones de renderizado de IronPDF .

¿Cómo se gestiona la seguridad y el control de acceso a los archivos PDF?

Las aplicaciones de producción a menudo necesitan restringir quién puede ver o modificar un documento PDF. IronPDF proporciona soporte integrado para contraseñas y permisos de PDF , lo que le permite cifrar documentos, requerir una contraseña para abrirlos o restringir la impresión y la copia.

Puedes aplicar configuraciones de seguridad a cualquier objeto PdfDocument antes de devolverlo desde tu controlador. Este enfoque funciona independientemente de si el PDF se generó desde HTML, se cargó desde el disco o se recuperó de una base de datos.

Opciones comunes de seguridad de PDF disponibles en IronPDF
Característica de seguridad Propiedad de IronPDF Caso de uso
Contraseña del propietario `OwnerPassword` Evitar cambios de permisos no autorizados
Contraseña de usuario `UserPassword` Requerir una contraseña para abrir el documento
Deshabilitar la impresión `AllowUserPrinting` Evitar que los destinatarios impriman el archivo
Deshabilitar la copia `AllowUserCopyPasteContent` Extracción de texto en bloque del PDF
Firma digital `PdfSignature` Verificar la autenticidad del documento

Para documentos confidenciales como contratos, estados financieros o historiales médicos, la combinación de una contraseña de usuario con permisos restringidos le brinda un control preciso sobre lo que los destinatarios pueden hacer con el archivo. El modo compatible con PDF/A es otra opción que vale la pena considerar para escenarios de archivo a largo plazo donde la integridad de los documentos debe preservarse durante décadas.

¿Cómo optimizar el rendimiento de la generación de PDF?

La generación de PDF implica trabajo de CPU y memoria, por lo que el rendimiento es importante en aplicaciones de alto tráfico. La API de renderizado asíncrono de IronPDF permite delegar la creación de PDF a un subproceso en segundo plano sin bloquear el flujo de solicitudes. Esto resulta especialmente útil al generar varios PDF en una sola solicitud o al procesar trabajos por lotes.

Para implementaciones de producción en Linux o en contenedores Docker, IronPDF admite la ejecución multiplataforma sin requerir dependencias específicas de Windows. La guía de instalación de IronPDF en Linux y la referencia de configuración de Docker cubren los pasos de configuración. Tanto el proyecto Mozilla PDF.js como los visores nativos del navegador son compatibles con cualquier PDF que IronPDF produzca, por lo que también tienes flexibilidad en la visualización.

Algunas prácticas que mejoran el rendimiento en la producción:

  • Reutiliza instancias ChromePdfRenderer donde sea posible en lugar de crear una nueva por solicitud, ya que la inicialización del renderizador conlleva cierta sobrecarga.
  • Utiliza métodos asincrónicos como RenderHtmlAsPdfAsync para liberar el hilo mientras el motor Chromium renderiza.
  • Almacene en caché los PDF generados mediante IMemoryCache o un caché distribuido cuando se solicita el mismo documento repetidamente.
  • Para documentos muy grandes, considere transmitir la salida en lugar de almacenar en búfer toda la matriz de bytes en la memoria.

¿Cómo funciona la renderización asincrónica en la práctica?

La API asincrónica refleja la versión sincrónica pero devuelve un Task<PdfDocument>. Esperas el resultado dentro de una acción del controlador async, manteniendo el pool de hilos libre para manejar otras solicitudes entrantes mientras el renderizado procede. Cambiar de renderizado sincrónico a asincrónico en un escenario de alta carga generalmente reduce la contención de subprocesos y mejora los tiempos de respuesta generales bajo carga concurrente.

¿Cuales son tus próximos pasos?

La creación de un visor de PDF en ASP.NET Core MVC combina las capacidades de visualización nativas del navegador con las funciones de generación de IronPDF. El visor de PDF integrado en los navegadores modernos maneja la visualización, la impresión y la navegación automáticamente cuando el controlador ASP.NET devuelve archivos con el tipo MIME correcto. IronPDF se encarga de la parte de generación: convierte HTML, URL o archivos existentes en documentos PDF bien formateados con soporte completo para CSS, JavaScript, encabezados, pies de página y configuraciones de seguridad.

Capacidades clave cubiertas en esta guía:

  • Servir archivos PDF existentes en línea utilizando el método File() con application/pdf tipo MIME
  • Generar PDF dinámicos desde cadenas HTML usando ChromePdfRenderer
  • Controlar la visualización en línea frente a la descarga de archivos a través del encabezado Content-Disposition
  • Agregar encabezados, pies de página, márgenes y configuraciones de seguridad a través de RenderingOptions
  • Uso de Razor Pages como alternativa a los controladores MVC para la generación de PDF
  • Aplicar protección con contraseña y restricciones de permisos a documentos confidenciales
  • Mejora del rendimiento con renderizado asincrónico y almacenamiento en caché de respuestas

Desde aquí, puede explorar flujos de trabajo más avanzados, como fusionar varios PDF , crear formularios rellenables o generar PDF a partir de vistas CSHTML de Razor . La documentación de IronPDF cubre cada función con ejemplos de código funcionales.

Comience su prueba gratuita para explorar todas las capacidades de IronPDF o compre una licencia para 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

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame