Saltar al pie de página
USANDO IRONPDF

Cómo convertir HTML a PDF en ASP

¿Cómo pueden los desarrolladores convertir HTML a PDF en ASP.NET Core?

¿Tiene dificultades para obtener informes y facturas nítidos y perfectos desde su aplicación ASP.NET Core? No es el único.

En algún momento, todo desarrollador necesita convertir contenido web dinámico -como informes o confirmaciones- en una versión PDF fiable y descargable. Es un requisito fundamental para generar desde facturas e informes detallados hasta formatos de documentos seguros.

¿Cuál es el reto? Conseguir que ese complejo HTML, con todo su CSS y JavaScript, se renderice perfectamente como PDF. Eso es donde entra IronPDF. Disponemos de una potente biblioteca PDF .NET que utiliza el motor de renderizado de Chrome para simplificar el proceso de conversión de HTML a PDF, garantizando que se obtiene exactamente lo que se ve en la pantalla. Puedes convertir fácilmente incluso los formatos de archivo HTML a PDF más difíciles con solo unas pocas líneas de código.

¿Listo para ver cómo? Veamos cómo podemos realizar tareas de HTML a PDF de ASP.NET Core con IronPDF.

Start your free trial and begin converting HTML to PDF documents today.

¿Cuáles son los pasos para empezar a utilizar IronPDF?

La instalación de IronPDF en su proyecto ASP.NET Core requiere un solo comando en la consola del gestor de paquetes NuGet:

Install-Package IronPdf

Esta biblioteca de .NET Framework ofrece funciones completas de representación de HTML, compatibles con elementos HTML modernos, estilos CSS y ejecución de JavaScript. El conversor de PDF maneja estructuras HTML complejas y propiedades CSS sin problemas. Es esencial para manejar varios formatos de documentos.

¿Cómo convertir una cadena HTML en un documento PDF?

Convertir una cadena HTML directamente en un archivo PDF es sencillo. El siguiente fragmento de código crea un controlador ASP.NET Core completo que convierte contenido HTML en documentos PDF:

using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace HtmlToPdf.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public IActionResult ConvertHtmlStringToPdf()
        {
            string htmlContent = @"
<html>
  <head>
    <title>IronPDF Test</title>
    <style>
      body { font-family: Arial; margin: 40px; }
      h1 { color: #2b5797; }
      table { border-collapse: collapse; width: 100%; margin-top: 20px; }
      th, td { border: 1px solid #ccc; padding: 8px; }
      th { background: #f0f0f0; }
    </style>
  </head>
  <body>
    <h1>IronPDF HTML to PDF Test</h1>
    <p>This is a simple test of converting an HTML string to PDF using IronPDF.</p>
    <table>
      <tr><th>Item</th><th>Price</th></tr>
      <tr><td>Apples</td><td>$1.50</td></tr>
      <tr><td>Bananas</td><td>$0.90</td></tr>
    </table>
    <p><em>End of test document.</em></p>
  </body>
</html>";
            // Initialize the PDF converter
            var renderer = new ChromePdfRenderer();
            // Configure default page size and other settings
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.MarginBottom = 20;
            // Convert HTML string to PDF document
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
            // Return PDF file to user, allowing them to download PDF version
            return File(pdfDocument.BinaryData, "application/pdf", "output.pdf");
        }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace HtmlToPdf.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public IActionResult ConvertHtmlStringToPdf()
        {
            string htmlContent = @"
<html>
  <head>
    <title>IronPDF Test</title>
    <style>
      body { font-family: Arial; margin: 40px; }
      h1 { color: #2b5797; }
      table { border-collapse: collapse; width: 100%; margin-top: 20px; }
      th, td { border: 1px solid #ccc; padding: 8px; }
      th { background: #f0f0f0; }
    </style>
  </head>
  <body>
    <h1>IronPDF HTML to PDF Test</h1>
    <p>This is a simple test of converting an HTML string to PDF using IronPDF.</p>
    <table>
      <tr><th>Item</th><th>Price</th></tr>
      <tr><td>Apples</td><td>$1.50</td></tr>
      <tr><td>Bananas</td><td>$0.90</td></tr>
    </table>
    <p><em>End of test document.</em></p>
  </body>
</html>";
            // Initialize the PDF converter
            var renderer = new ChromePdfRenderer();
            // Configure default page size and other settings
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.MarginBottom = 20;
            // Convert HTML string to PDF document
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
            // Return PDF file to user, allowing them to download PDF version
            return File(pdfDocument.BinaryData, "application/pdf", "output.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fichero PDF de salida

Cómo convertir HTML a PDF con ASP.NET Core: Figura 1 - Salida simple de HTML a PDF en ASP.NET

Este fragmento de código invoca ImportFromUrl internamente al procesar páginas web. La clase ChromePdfRenderer se encarga del proceso de conversión, transformando el código HTML en un archivo PDF con el formato adecuado. El documento PDF resultante mantiene todas las etiquetas HTML, los archivos CSS e incluso los estilos en línea de su cadena HTML directamente. Este proceso es crucial para convertir con precisión las páginas PDF.

¿Cómo convertir archivos HTML en archivos PDF?

Cuando se trabaja con archivos HTML existentes en el servidor, IronPDF puede convertir el contenido del archivo HTML conservando todos los recursos vinculados. Este enfoque funciona perfectamente para la generación de documentos basados en plantillas:

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using System.IO;

namespace YourApp.Controllers
{
    public class DocumentController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public DocumentController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        [HttpGet]
        public IActionResult GeneratePdfFromTemplate(string templateName)
        {
            // Get path to HTML file
            string htmlFilePath = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html");
            var renderer = new ChromePdfRenderer();
            // Configure rendering options
            renderer.RenderingOptions.EnableJavaScript = true;
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
            // Convert HTML file to PDF
            var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            // Add headers and footers if needed
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
            {
                Height = 25,
                HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            };
            return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using System.IO;

namespace YourApp.Controllers
{
    public class DocumentController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public DocumentController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        [HttpGet]
        public IActionResult GeneratePdfFromTemplate(string templateName)
        {
            // Get path to HTML file
            string htmlFilePath = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html");
            var renderer = new ChromePdfRenderer();
            // Configure rendering options
            renderer.RenderingOptions.EnableJavaScript = true;
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
            // Convert HTML file to PDF
            var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            // Add headers and footers if needed
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
            {
                Height = 25,
                HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            };
            return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado PDF

Cómo convertir HTML a PDF con ASP.NET Core: Figura 2 - Archivo de plantilla HTML a PDF

Este método lee documentos HTML del disco y los convierte en archivos PDF manteniendo la estructura HTML. El proceso de conversión a PDF conserva todas las propiedades CSS, URL de imágenes e incluso elementos HTML complejos. También es posible que te encuentres con situaciones avanzadas como la configuración de un ancho de página específico.

¿Cómo maneja IronPDF las páginas web con autenticación de formularios?

Las aplicaciones ASP.NET Core utilizan a menudo la autenticación de formularios para proteger el contenido. Al convertir documentos HTML que requieren autenticación, IronPDF puede pasar cookies de autenticación:

[Authorize]
public IActionResult ConvertAuthenticatedPage()
{
    var renderer = new ChromePdfRenderer();
    // Get current URL with authentication
    string currentUrl = $"{Request.Scheme}://{Request.Host}/SecureContent";
    // Pass authentication cookie
    var authCookie = Request.Cookies[".AspNetCore.Cookies"];
    if (!string.IsNullOrEmpty(authCookie))
    {
        renderer.RenderingOptions.CustomCssUrl = currentUrl;
    }
    // Convert authenticated page
    var pdf = renderer.RenderUrlAsPdf(currentUrl);
    return File(pdf.BinaryData, "application/pdf", "secure_document.pdf");
}
[Authorize]
public IActionResult ConvertAuthenticatedPage()
{
    var renderer = new ChromePdfRenderer();
    // Get current URL with authentication
    string currentUrl = $"{Request.Scheme}://{Request.Host}/SecureContent";
    // Pass authentication cookie
    var authCookie = Request.Cookies[".AspNetCore.Cookies"];
    if (!string.IsNullOrEmpty(authCookie))
    {
        renderer.RenderingOptions.CustomCssUrl = currentUrl;
    }
    // Convert authenticated page
    var pdf = renderer.RenderUrlAsPdf(currentUrl);
    return File(pdf.BinaryData, "application/pdf", "secure_document.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este script que llama a ImportFromUrl reconoce tablas, formularios y otros contenidos HTML renderizados tras la autenticación. La verificación del código de estado HTTP garantiza la recuperación correcta de la página antes de la conversión a PDF. Si la URL no es válida o no es una URL, el proceso fallará con un error de apertura de URL. Si la URL apunta al mismo directorio virtual, los recursos se resolverán correctamente desde la URL especificada.

¿Qué pasa con la conversión de archivos ASPX y contenido dinámico?

Para la conversión de archivos ASPX heredados o documentos generados dinámicamente, IronPDF gestiona el proceso de renderización sin problemas. El sencillo fragmento de código crea páginas PDF a partir de cualquier dirección HTTP o HTTPS:

public IActionResult ConvertDynamicContent()
{
    var renderer = new ChromePdfRenderer();
    // Enable JavaScript for dynamic content
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.JavascriptDelay = 1000; // Wait for content to load
    // Handle various HTML tags and dynamic elements
    string dynamicHtml = GenerateDynamicHtml(); // Your method
    var pdf = renderer.RenderHtmlAsPdf(dynamicHtml);
    return File(pdf.BinaryData, "application/pdf", "dynamic.pdf");
}
public IActionResult ConvertDynamicContent()
{
    var renderer = new ChromePdfRenderer();
    // Enable JavaScript for dynamic content
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.JavascriptDelay = 1000; // Wait for content to load
    // Handle various HTML tags and dynamic elements
    string dynamicHtml = GenerateDynamicHtml(); // Your method
    var pdf = renderer.RenderHtmlAsPdf(dynamicHtml);
    return File(pdf.BinaryData, "application/pdf", "dynamic.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Cómo convertir HTML a PDF con ASP.NET Core: Figura 3 - Archivo PDF de salida

Un problema común en la conversión de HTML a PDF es garantizar que el contenido no cree interrupciones no deseadas en HTML. IronPDF minimiza este problema.

¿Cómo manejar los estilos CSS y el renderizado HTML avanzado?

El motor de renderizado HTML de IronPDF admite estilos CSS avanzados y funciones HTML5. Al convertir HTML a PDF, la biblioteca gestiona la interpretación de propiedades CSS, incluidos diseños complejos y adaptables. El PDF mantiene mediante programación la fidelidad visual de la página web, incluidos los archivos CSS, las etiquetas HTML y el contenido renderizado en JavaScript.

El proceso de conversión gestiona automáticamente las páginas en blanco, las páginas múltiples y los ajustes de tamaño de página. También puede gestionar situaciones especializadas, como la inclusión de encabezados/pies de página en páginas pares e impares o solo en páginas impares posteriores, o la gestión de páginas inexistentes con elegancia. Está diseñado para convertir fácilmente contenidos web complejos.

¿Por qué elegir IronPDF para su proyecto .NET?

IronPDF destaca como una completa biblioteca .NET para la conversión de HTML a PDF. A diferencia de los convertidores de PDF básicos, ofrece compatibilidad total con los estándares web modernos, gestionando desde simples cadenas HTML hasta complejas aplicaciones web con autenticación de formularios.

La biblioteca destaca en la conversión de documentos HTML conservando todo el formato, lo que la hace ideal para generar documentos PDF profesionales en sus aplicaciones .NET Core. Tanto si necesita convertir archivos HTML, procesar contenido HTML o generar PDF a partir de plantillas de documentos PDF existentes, IronPDF proporciona las herramientas necesarias para una conversión de PDF sin problemas.

Descargue IronPDF hoy mismo y transforme su contenido HTML en documentos PDF profesionales con sólo unas líneas de código. For additional support, explore the comprehensive documentation and API reference to unlock the full potential of HTML to PDF conversion in your ASP.NET Core applications.

Preguntas Frecuentes

¿Cómo puedo convertir HTML a PDF usando ASP.NET Core?

Puede convertir HTML a PDF en ASP.NET Core usando IronPDF, que le permite convertir cadenas HTML, archivos e incluso páginas web autenticadas a PDFs con facilidad.

¿Cuáles son los beneficios de usar IronPDF para la conversión de HTML a PDF?

IronPDF proporciona una API completa y amigable para desarrolladores para convertir HTML a PDF, ofreciendo funciones como compatibilidad con HTML5 y CSS3, soporte para JavaScript y la capacidad de convertir páginas web complejas en PDFs de calidad profesional.

¿Puede IronPDF manejar cadenas HTML para la conversión a PDF?

Sí, IronPDF puede convertir cadenas HTML directamente en documentos PDF, lo que facilita la generación de PDFs a partir de contenido dinámicamente generado en aplicaciones de ASP.NET Core.

¿Es posible convertir páginas web autenticadas a PDF usando IronPDF?

IronPDF admite la conversión de páginas web autenticadas al permitir pasar credenciales, haciendo posible convertir contenido seguro en documentos PDF.

¿IronPDF admite la conversión de archivos HTML a PDF?

Sí, IronPDF puede convertir archivos HTML en formato PDF, proporcionando flexibilidad para manejar varios tipos de contenido HTML para la conversión.

¿Qué tipo de formato puede manejar IronPDF durante la conversión de HTML a PDF?

IronPDF admite capacidades de formato avanzadas, incluyendo estilos CSS, ejecución de JavaScript y renderizado de diseños complexos, asegurando que el PDF convertido se asemeje al diseño original de HTML.

¿Puedo personalizar la salida del PDF al usar IronPDF?

IronPDF permite una extensa personalización de la salida del PDF, incluyendo la configuración de encabezados y pies de página, la personalización de tamaños de página y el control de márgenes, asegurando que el PDF cumpla con sus requisitos específicos.

¿Qué entornos de desarrollo son compatibles con IronPDF para la conversión de HTML a PDF?

IronPDF es compatible con ASP.NET Core y puede utilizarse sin problemas dentro de proyectos de C#, lo que lo convierte en una herramienta versátil para desarrolladores que trabajan en entornos .NET.

¿Cómo garantiza IronPDF la seguridad del proceso de conversión de PDF?

IronPDF puede convertir HTML a PDF de manera segura al admitir HTTPS y permitir el uso de credenciales de autenticación, protegiendo la información sensible durante el proceso de conversión.

¿Cuáles son los requisitos del sistema para usar IronPDF en un proyecto ASP.NET Core?

IronPDF requiere un entorno .NET y está diseñado para integrarse sin problemas en aplicaciones ASP.NET Core, asegurando una configuración y operación sin complicaciones para los desarrolladores.

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