Saltar al pie de página
USANDO IRONPDF

Cómo crear un PDF en ASP.NET C#

Si alguna vez ha tenido que lidiar con el dolor de cabeza que supone generar archivos PDF formateados en ASP.NET C#, sabrá lo frustrante que puede llegar a ser. La necesidad de facturas profesionales, informes detallados y documentos oficiales es una constante, pero la complejidad de las API de PDF tradicionales a menudo se interpone en el camino.

Afortunadamente, IronPDF elimina esa complejidad. Esta potente biblioteca PDF .NET simplifica todo el proceso, proporcionándole el código completo y las herramientas para generar documentos PDF magníficos y fiables con rapidez.

¿Qué hace que la generación de PDF sea esencial en ASP.NET Core?

Los documentos PDF son el estándar universal para compartir contenidos formateados en diferentes plataformas y dispositivos. En las aplicaciones ASP.NET Core, la generación de archivos PDF permite a las empresas crear facturas profesionales, informes detallados y documentos oficiales que mantienen su formato independientemente del entorno de visualización. La generación de PDF del lado del servidor proporciona un resultado coherente, un mejor control de la seguridad y elimina la dependencia de los recursos del lado del cliente.

La posibilidad de convertir contenido HTML directamente a formato PDF abre grandes posibilidades. Puede aprovechar sus conocimientos de HTML y CSS para crear documentos PDF con un formato atractivo sin tener que aprender complejas API específicas de PDF. Este enfoque le permite generar archivos PDF a partir de sus páginas web existentes, vistas Razor o cadenas HTML personalizadas con el mínimo esfuerzo.

¿Cómo simplifica IronPDF la creación de PDF?

IronPDF destaca entre otras bibliotecas de generación de PDF gracias a su motor de renderizado basado en Chrome, que garantiza una conversión precisa de HTML a PDF. Este motor es compatible con los estándares web modernos, incluidos CSS3, JavaScript y diseños adaptables, lo que permite crear documentos PDF con el mismo aspecto que sus equivalentes en HTML.

El sencillo diseño de la API de la biblioteca permite empezar a generar archivos PDF de inmediato sin necesidad de realizar grandes configuraciones. IronPDF se encarga de las complejidades de la creación de archivos PDF entre bastidores, desde la gestión de fuentes e imágenes hasta la representación correcta de diseños complejos. Tanto si se trata de generar un PDF a partir de una simple cadena HTML como de convertir páginas web enteras, el proceso sigue siendo siempre sencillo. Se trata de una potente biblioteca de código abierto para muchos desarrolladores.

¿Cómo empezar a utilizar IronPDF en ASP.NET Core?

La configuración de IronPDF en su proyecto ASP.NET Core es sencilla mediante el gestor de paquetes NuGet. Abra la consola del gestor de paquetes en Visual Studio y ejecute el siguiente comando:

Install-Package IronPdf

Una vez instalado, tendrá acceso a la biblioteca completa de IronPDF y podrá empezar inmediatamente a crear archivos PDF. For production use, you'll need to apply a license key, but the free version allows full development and testing.

¿Cómo crear documentos PDF a partir de una simple cadena HTML?

Empecemos con un ejemplo sencillo que muestra cómo crear un archivo PDF a partir de una cadena HTML. Este ejemplo muestra el enfoque fundamental para generar documentos PDF:

using IronPdf;

public class PdfGenerator
{
    public void CreateSimplePdf()
    {
        // Create a new PDF document
        var renderer = new ChromePdfRenderer();
        // Generate PDF from HTML string
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF file in C#!</p>");
        // Save the PDF file
        pdf.SaveAs("simple-document.pdf");
    }
}
using IronPdf;

public class PdfGenerator
{
    public void CreateSimplePdf()
    {
        // Create a new PDF document
        var renderer = new ChromePdfRenderer();
        // Generate PDF from HTML string
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF file in C#!</p>");
        // Save the PDF file
        pdf.SaveAs("simple-document.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado PDF

Cómo crear un PDF en ASP.NET C#: Figura 1 - Salida simple de HTML a PDF

Este código crea un nuevo documento con contenido HTML básico. La clase ChromePdfRenderer se encarga de todos los detalles de la conversión, transformando tu HTML en un archivo PDF con el formato adecuado. El documento resultante mantiene la estructura HTML mientras se convierte al formato de documento portátil. También puede encontrar útiles tutoriales en PDF con ejemplos completos de código en nuestro sitio web.

¿Cómo generar documentos PDF con HTML complejo?

IronPDF destaca en la conversión de contenido HTML complejo en documentos PDF. Vamos a crear un documento de factura más sofisticado que demuestre las capacidades de la biblioteca con contenido HTML estilizado:

using IronPdf;
using System;

public class InvoiceGenerator
{
    public void CreateInvoiceDocument()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with styling
        string htmlContent = @"
        <!DOCTYPE html>
        <html>
        <head>
            <style>
                body { font-family: 'Arial', sans-serif; margin: 40px; }
                .header { background-color: #003366; color: white; padding: 20px; text-align: center; }
                .invoice-details { margin: 20px 0; }
                table { width: 100%; border-collapse: collapse; margin-top: 20px; }
                th { background-color: #f0f0f0; padding: 10px; text-align: left; }
                td { padding: 10px; border-bottom: 1px solid #ddd; }
                .total { font-size: 18px; font-weight: bold; text-align: right; margin-top: 20px; }
            </style>
        </head>
        <body>
            <div class='header'>
                <h1>INVOICE</h1>
            </div>
            <div class='invoice-details'>
                <p><strong>Invoice Number:</strong> INV-2024-001</p>
                <p><strong>Date:</strong> " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                <p><strong>Customer:</strong> ABC Corporation</p>
            </div>
            <table>
                <thead>
                    <tr>
                        <th>Item</th>
                        <th>Quantity</th>
                        <th>Price</th>
                        <th>Total</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Professional Services</td>
                        <td>10</td>
                        <td>$150.00</td>
                        <td>$1,500.00</td>
                    </tr>
                    <tr>
                        <td>Software License</td>
                        <td>1</td>
                        <td>$499.00</td>
                        <td>$499.00</td>
                    </tr>
                </tbody>
            </table>
            <div class='total'>
                Total Amount: $1,999.00
            </div>
        </body>
        </html>";
        // Generate PDF file
        var document = renderer.RenderHtmlAsPdf(htmlContent);
        document.SaveAs("invoice.pdf");
    }
}
using IronPdf;
using System;

public class InvoiceGenerator
{
    public void CreateInvoiceDocument()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with styling
        string htmlContent = @"
        <!DOCTYPE html>
        <html>
        <head>
            <style>
                body { font-family: 'Arial', sans-serif; margin: 40px; }
                .header { background-color: #003366; color: white; padding: 20px; text-align: center; }
                .invoice-details { margin: 20px 0; }
                table { width: 100%; border-collapse: collapse; margin-top: 20px; }
                th { background-color: #f0f0f0; padding: 10px; text-align: left; }
                td { padding: 10px; border-bottom: 1px solid #ddd; }
                .total { font-size: 18px; font-weight: bold; text-align: right; margin-top: 20px; }
            </style>
        </head>
        <body>
            <div class='header'>
                <h1>INVOICE</h1>
            </div>
            <div class='invoice-details'>
                <p><strong>Invoice Number:</strong> INV-2024-001</p>
                <p><strong>Date:</strong> " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                <p><strong>Customer:</strong> ABC Corporation</p>
            </div>
            <table>
                <thead>
                    <tr>
                        <th>Item</th>
                        <th>Quantity</th>
                        <th>Price</th>
                        <th>Total</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Professional Services</td>
                        <td>10</td>
                        <td>$150.00</td>
                        <td>$1,500.00</td>
                    </tr>
                    <tr>
                        <td>Software License</td>
                        <td>1</td>
                        <td>$499.00</td>
                        <td>$499.00</td>
                    </tr>
                </tbody>
            </table>
            <div class='total'>
                Total Amount: $1,999.00
            </div>
        </body>
        </html>";
        // Generate PDF file
        var document = renderer.RenderHtmlAsPdf(htmlContent);
        document.SaveAs("invoice.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado PDF File

Cómo crear un PDF en ASP.NET C#: Figura 2 - Salida de HTML complejo a PDF

El código anterior muestra cómo IronPDF gestiona estructuras HTML complejas, estilos CSS y contenido dinámico para crear documentos PDF profesionales. El archivo PDF resultante mantiene todo el formato, por lo que es perfecto para la generación de documentos empresariales.

¿Cómo generar archivos PDF en controladores MVC de ASP.NET Core?

En las aplicaciones ASP.NET Core MVC, normalmente se generan archivos PDF dentro de las acciones del controlador y se devuelven a los usuarios para su descarga. El siguiente fragmento de código muestra cómo implementar la generación de PDF en sus controladores utilizando la última versión:

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

public class DocumentController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        string htmlString = @"
        <html>
        <head>
            <style>
                body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
                h1 { color: #2c3e50; }
                .report-content { line-height: 1.6; }
            </style>
        </head>
        <body>
            <h1>Monthly Sales Report</h1>
            <div class='report-content'>
                <p>This report contains confidential sales data for the current month.</p>
                <p>Total Revenue: $45,678</p>
                <p>New Customers: 123</p>
            </div>
        </body>
        </html>";
        // Create PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
        // Convert to byte array
        byte[] pdfBytes = pdfDocument.BinaryData;
        // Return file
        return File(pdfBytes, "application/pdf", "sales-report.pdf");
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.IO;

public class DocumentController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        string htmlString = @"
        <html>
        <head>
            <style>
                body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
                h1 { color: #2c3e50; }
                .report-content { line-height: 1.6; }
            </style>
        </head>
        <body>
            <h1>Monthly Sales Report</h1>
            <div class='report-content'>
                <p>This report contains confidential sales data for the current month.</p>
                <p>Total Revenue: $45,678</p>
                <p>New Customers: 123</p>
            </div>
        </body>
        </html>";
        // Create PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
        // Convert to byte array
        byte[] pdfBytes = pdfDocument.BinaryData;
        // Return file
        return File(pdfBytes, "application/pdf", "sales-report.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Salida en PDF de ASP.NET

Cómo crear un PDF en ASP.NET C#: Figura 3 - ASP.NET HTML to PDF output

Esta acción del controlador genera un documento PDF y lo devuelve como archivo descargable. Las opciones de renderización permiten personalizar los márgenes y especificar el tipo de medio CSS para obtener una salida óptima en formato PDF. El nombre de archivo para la descarga es "sales-report.pdf".

¿Cómo generar fácilmente archivos PDF a partir de URL y archivos HTML?

IronPDF can also convert existing web pages and HTML files directly to PDF format. Esto resulta especialmente útil cuando es necesario generar PDF a partir de contenidos existentes:

using IronPdf;

public class WebPageConverter
{
    public void ConvertUrlToPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitFor.RenderDelay(1000);
        // Convert URL to PDF
        var urlPdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        urlPdf.SaveAs("webpage.pdf");
    }

    public void ConvertHtmlFileToPdf()
    {
        var renderer = new ChromePdfRenderer();
        // Convert HTML file to PDF
        var htmlFile = renderer.RenderHtmlFileAsPdf("template.html");
        htmlFile.SaveAs("from-file.pdf");
    }
}
using IronPdf;

public class WebPageConverter
{
    public void ConvertUrlToPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitFor.RenderDelay(1000);
        // Convert URL to PDF
        var urlPdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        urlPdf.SaveAs("webpage.pdf");
    }

    public void ConvertHtmlFileToPdf()
    {
        var renderer = new ChromePdfRenderer();
        // Convert HTML file to PDF
        var htmlFile = renderer.RenderHtmlFileAsPdf("template.html");
        htmlFile.SaveAs("from-file.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Salida de URL a PDF

Cómo crear un PDF en ASP.NET C#: Figura 4 - Salida de URL a PDF

Ambos métodos conservan el diseño completo del código, las imágenes y el estilo del contenido original al crear archivos PDF. Si se ha producido un error, asegúrese de comprobar la ruta del archivo.

¿Cómo añadir encabezados y pies de página a documentos PDF?

Añadir encabezados y pies de página profesionales a los documentos PDF mejora su aspecto y proporciona contexto importante, como los números de página y los títulos de los documentos. El siguiente ejemplo de código muestra cómo hacerlo:

using IronPdf;

public class HeaderFooterExample
{
    public void CreatePdfWithHeaderFooter()
    {
        var renderer = new ChromePdfRenderer();
        // Configure headers and footers
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align:center'>Company Report</div>",
            DrawDividerLine = true
        };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
            DrawDividerLine = true
        };
        // HTML content for the main document
        string content = "<h1>Annual Report</h1><p>This document contains important information.</p>";
        // Generate PDF with headers and footers
        var doc = renderer.RenderHtmlAsPdf(content);
        doc.SaveAs("report-with-headers.pdf");
    }
}
using IronPdf;

public class HeaderFooterExample
{
    public void CreatePdfWithHeaderFooter()
    {
        var renderer = new ChromePdfRenderer();
        // Configure headers and footers
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align:center'>Company Report</div>",
            DrawDividerLine = true
        };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
            DrawDividerLine = true
        };
        // HTML content for the main document
        string content = "<h1>Annual Report</h1><p>This document contains important information.</p>";
        // Generate PDF with headers and footers
        var doc = renderer.RenderHtmlAsPdf(content);
        doc.SaveAs("report-with-headers.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado PDF with Headers

Cómo crear un PDF en ASP.NET C#: Figura 5 - PDF generado con encabezados

Los marcadores de posición {page} y {total-pages} se rellenan automáticamente con los números de página correctos, creando archivos PDF de aspecto profesional. Esto permite añadir una nueva página a un objeto de documento existente.

Conclusión

El proceso de creación de tareas ASP.NET C# en PDF con IronPDF transforma lo que podría ser una tarea compleja en un proceso sencillo. Desde simples cadenas HTML hasta complejos documentos de facturación, el motor de renderizado de Chrome de IronPDF garantiza que sus documentos PDF tengan exactamente el aspecto deseado. La intuitiva API de la biblioteca permite generar archivos PDF, modificar archivos PDF y manejar documentos PDF existentes con un código mínimo. También puede gestionar firmas digitales fácilmente. El uso de una plantilla de aplicación de consola o ASP.NET es flexible.

Tanto si está generando PDF para informes empresariales, creando documentos PDF a partir de páginas web o convirtiendo contenido HTML a formato de documento portátil, IronPDF le proporciona todas las herramientas que necesita. ¿Está listo para empezar a crear archivos PDF profesionales en sus aplicaciones .NET?

Instale IronPDF hoy mismo y compruebe lo fácil que puede ser generar PDF con la biblioteca .NET adecuada. Consulte la documentación para obtener más detalles. IronPDF es compatible con .NET Framework y .NET Core.

Para implantaciones de producción, explore las opciones de licencias completas que mejor se adapten a las necesidades de su proyecto. Con IronPDF, está a sólo unas líneas de código de una potente generación de documentos PDF en sus aplicaciones ASP.NET Core.

Preguntas Frecuentes

¿Cuál es la mejor manera de crear PDFs en ASP.NET C#?

Usar IronPDF permite a los desarrolladores crear fácilmente PDFs en ASP.NET C# convirtiendo HTML a PDF y generando documentos profesionales con una API simple y renderizado de Chrome.

¿Puedo convertir HTML a PDF usando IronPDF?

Sí, IronPDF proporciona un método sencillo para convertir HTML a PDF, lo cual es ideal para generar facturas, informes y otros documentos profesionales.

¿Cuáles son los beneficios de usar IronPDF para generar PDFs?

IronPDF ofrece una API simple, renderizado de Chrome y la capacidad de producir PDFs de alta calidad a partir de contenido HTML, haciéndolo perfecto para crear documentos profesionales en ASP.NET C#.

¿Es posible generar facturas usando IronPDF en ASP.NET C#?

Absolutamente, IronPDF puede generar facturas profesionales convirtiendo plantillas de facturas en HTML a PDFs con facilidad.

¿Cómo simplifica IronPDF el proceso de creación de PDF?

IronPDF simplifica el proceso de creación de PDFs proporcionando una API fácil de usar que convierte HTML a PDF, eliminando las complejidades de las APIs tradicionales de PDF.

¿Qué tipo de documentos se pueden generar con IronPDF?

Con IronPDF, puedes generar una amplia gama de documentos como facturas profesionales, informes detallados y documentos oficiales convirtiendo HTML a PDF.

¿IronPDF usa Chrome para el renderizado de PDFs?

Sí, IronPDF utiliza el renderizado de Chrome para asegurar una salida de PDF de alta calidad a partir de contenido HTML.

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