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 contenido HTML 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. Puede convertir fácilmente incluso el formato de archivo HTML a PDF más difícil con sólo unas pocas líneas de código.

¿Listo para ver cómo? Entremos en materia y veamos cómo podemos manejar las tareas de conversión de HTML a PDF en ASP con IronPDF.

Inicie su prueba gratuita y comience a convertir documentos HTML a PDF hoy mismo.

¿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
Install-Package IronPdf
SHELL

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

ASP Convertir HTML a PDF: Guía completa con IronPDF: Imagen 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

ASP Convertir HTML a PDF: Guía completa con IronPDF: Imagen 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.WaitFor.RenderDelay(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.WaitFor.RenderDelay(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

ASP Convertir HTML a PDF: Guía completa con IronPDF: Imagen 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 sólo 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 pocas líneas de código. Para obtener ayuda adicional, explore la completa documentación y referencia de API para liberar todo el potencial de la conversión de HTML a PDF en sus aplicaciones ASP.NET Core.

Preguntas Frecuentes

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

Los desarrolladores pueden convertir HTML a PDF en ASP.NET Core utilizando IronPDF, que proporciona una API sencilla para convertir contenido HTML en un documento PDF. Esto incluye la conversión de cadenas HTML, archivos e incluso páginas web autenticadas en PDF.

¿Cuáles son las características clave de IronPDF para la conversión de HTML a PDF?

IronPDF ofrece funciones clave como la compatibilidad con HTML5, CSS, JavaScript y diseños de página complejos. También permite a los desarrolladores convertir cadenas HTML, URL y archivos HTML locales en documentos PDF con facilidad.

¿Puede IronPDF gestionar páginas web autenticadas durante la conversión?

Sí, IronPDF puede manejar páginas web autenticadas. Admite la conversión de páginas que requieren autenticación, lo que garantiza una generación de PDF segura y precisa a partir de contenido web protegido.

¿Cómo garantiza IronPDF la calidad de los PDF convertidos?

IronPDF garantiza un resultado PDF de alta calidad mediante la renderización precisa del contenido HTML, incluidos estilos, fuentes e imágenes, utilizando motores de renderización avanzados. Esto garantiza que el PDF final se ajuste al diseño HTML original.

¿Es posible convertir cadenas HTML a PDF con IronPDF?

Sí, IronPDF puede convertir cadenas HTML directamente en documentos PDF. Esta función es útil para generar PDF dinámicamente a partir de contenido HTML en aplicaciones web.

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

IronPDF admite la conversión de archivos HTML locales a PDF permitiendo a los desarrolladores especificar la ruta del archivo. Esta función facilita la generación de PDF a partir de archivos HTML estáticos almacenados en el servidor.

¿Qué lenguajes de programación soporta IronPDF?

IronPDF está diseñado para su uso con C# y VB.NET, por lo que es ideal para los desarrolladores que trabajan en el ecosistema .NET para añadir capacidades de generación de PDF a sus aplicaciones.

¿Puede IronPDF manejar diseños y estilos HTML complejos?

Sí, IronPDF está equipado para manejar diseños y estilos HTML complejos, incluidos CSS y JavaScript, garantizando que el PDF resultante mantenga el diseño y la funcionalidad de la página web original.

¿Cuáles son algunos casos de uso de la conversión de HTML a PDF en aplicaciones ASP.NET?

Algunos casos de uso incluyen la generación de facturas, informes y documentación a partir de páginas web, el archivo de contenidos web y la creación de versiones PDF descargables de páginas web para su uso sin conexión.

¿Cómo se compara IronPDF con otras herramientas de conversión de HTML a PDF?

IronPDF destaca por su facilidad de uso, su sólido conjunto de funciones y su excelente compatibilidad con diversos elementos HTML y de autenticación, proporcionando una solución fiable para los desarrolladores que buscan una generación de PDF de alta calidad.

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