Saltar al pie de página
USANDO IRONPDF

Cómo generar archivos PDF en Dotnet Core

Crear documentos PDF en aplicaciones .NET Core es una tarea común para los desarrolladores que construyen aplicaciones web que necesitan generar archivos PDF para facturas, informes y otros documentos de negocios. IronPDF proporciona una potente biblioteca PDF que simplifica la generación de PDFs en ASP.NET Core a través de su motor de renderizado Chrome, entregando PDFs con calidad de impresión en todo momento. En este artículo, veremos cómo puedes manejar varias tareas de generación de PDF en el entorno .NET.

DotNet Core genera archivos PDF, ¿cómo funciona?

IronPDF utiliza un motor de renderizado WebKit basado en Google Chrome para renderizar contenido HTML en archivos PDF. Este enfoque para la creación de PDFs significa que puedes aprovechar tu marcado HTML y conocimientos de CSS existentes para crear PDFs sin aprender capacidades complejas de generación de PDFs o enfrentarse a una gran curva de aprendizaje. La biblioteca PDF maneja automáticamente la generación de documentos PDF a partir de páginas web.

La API fluida de la biblioteca permite a los desarrolladores generar documentos PDF a partir de páginas HTML, URLs o cadenas de contenido HTML. Al convertir HTML en PDF, IronPDF preserva diseños complejos, estilos CSS, ejecución de JavaScript e incluso contenido web que depende de contenido dinámico. Esto lo convierte en la herramienta adecuada para desarrolladores .NET que necesitan capacidades de conversión de PDF con muchas funciones en sus aplicaciones .NET. La biblioteca .NET destaca en la generación de archivos PDF con perfecta precisión.

¿Cómo instalar IronPDF a través del gestor de paquetes NuGet?

Comenzar con IronPDF requiere solo una instalación de herramienta de línea de comandos a través del Administrador de Paquetes NuGet. Abra la Consola de Administrador de Paquetes en Visual Studio y ejecute el siguiente comando:

Install-Package IronPdf

¿Cómo generar documentos PDF a partir de cadenas HTML?

La forma más sencilla de crear un documento PDF es convirtiendo el contenido HTML directamente. Aquí tienes un ejemplo básico de 'Hola Mundo' que muestra cómo generar archivos PDF:

using IronPdf;

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("hello.pdf");
using IronPdf;

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("hello.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

En el código anterior, creamos un nuevo documento PDF con solo unas pocas líneas de código. La clase ChromePdfRenderer proporciona la funcionalidad central para generar archivos PDF a partir de HTML. El objeto pdf contiene tu documento PDF listo para guardarse en una ruta de archivo.

Conversión avanzada de HTML a PDF

Para un ejemplo más detallado que demuestre las capacidades de HTML a PDF, vamos a crear un documento de factura con marcado HTML y estilo CSS:

using IronPdf;

var html = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; font-size: 14px; }
        .invoice-header { 
            background-color: #2c3e50; 
            color: white; 
            padding: 20px;
            font-family: 'Helvetica', sans-serif;
        }
        .invoice-details { margin: 20px 0; }
        table { width: 100%; border-collapse: collapse; }
        th, td {
            padding: 12px; 
            text-align: left; 
            border-bottom: 1px solid #ddd;
        }
        .total { 
            font-size: 1.2em; 
            font-weight: bold; 
            text-align: right;
        }
    </style>
</head>
<body>
    <div class='invoice-header'>
        <h1>Invoice #2024-001</h1>
        <p>Date: January 15, 2024</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: John Doe</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$749</td>
            </tr>
        </table>
        <p class='total'>Total: $749.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
// Configure rendering options for the PDF document
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
using IronPdf;

var html = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; font-size: 14px; }
        .invoice-header { 
            background-color: #2c3e50; 
            color: white; 
            padding: 20px;
            font-family: 'Helvetica', sans-serif;
        }
        .invoice-details { margin: 20px 0; }
        table { width: 100%; border-collapse: collapse; }
        th, td {
            padding: 12px; 
            text-align: left; 
            border-bottom: 1px solid #ddd;
        }
        .total { 
            font-size: 1.2em; 
            font-weight: bold; 
            text-align: right;
        }
    </style>
</head>
<body>
    <div class='invoice-header'>
        <h1>Invoice #2024-001</h1>
        <p>Date: January 15, 2024</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: John Doe</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$749</td>
            </tr>
        </table>
        <p class='total'>Total: $749.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
// Configure rendering options for the PDF document
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este ejemplo demuestra la capacidad de IronPDF para manejar diseños complejos con estilo CSS, incluyendo configuraciones de tamaño de fuente y familia de fuente. La biblioteca PDF procesa el marcado HTML para crear documentos PDF que mantienen la apariencia exacta de tus páginas HTML. El código anterior muestra cómo las aplicaciones ASP.NET Core pueden generar salida PDF para documentos de negocios.

Resultado

Cómo generar archivos PDF en Dotnet Core: Figura 1 - Salida PDF de HTML a PDF

¿Cómo convertir páginas web en archivos PDF?

IronPDF destaca en la generación de PDFs a partir de páginas web en vivo. Esta funcionalidad es particularmente útil para aplicaciones web ASP.NET Core que necesitan capturar contenido web dinámicamente. La biblioteca PDF puede generar archivos PDF a partir de cualquier URL:

using IronPdf;

var renderer = new ChromePdfRenderer();
// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La biblioteca .NET maneja la ejecución de JavaScript, recursos externos y diseños responsivos automáticamente al generar archivos PDF. El objeto renderer proporciona acceso a funciones avanzadas para personalizar la conversión de páginas web a archivos PDF.

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for dynamic content

// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for dynamic content

// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Estas opciones de personalización aseguran que el contenido dinámico se cargue completamente antes de la conversión a PDF, resultando en archivos PDF precisos. El código anterior demuestra cómo ASP.NET Core puede generar PDFs a partir de páginas web con un renderizado perfecto.

Cómo generar archivos PDF en Dotnet Core: Figura 2 - Página web comparada con el PDF generado a partir de la página web

¿Cómo crear documentos PDF en aplicaciones web ASP.NET Core?

Integrar la generación de PDF en aplicaciones ASP.NET Core es sencillo. La biblioteca PDF funciona perfectamente con los controladores ASP.NET Core para generar documentos PDF. Aquí tienes un ejemplo de un punto final API que crea archivos PDF:

using Microsoft.AspNetCore.Mvc;
using IronPdf;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate-report")]
    public IActionResult GenerateReport()
    {
        var html = @"
            <h1>Monthly Sales Report</h1>
            <p>Generated on: " + DateTime.Now.ToString() + @"</p>
            <table>
                <tr><th>Product</th><th>Sales</th></tr>
                <tr><td>Product A</td><td>$5,000</td></tr>
                <tr><td>Product B</td><td>$3,500</td></tr>
            </table>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF file to browser
        return File(pdf.BinaryData, "application/pdf", "output.pdf");
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate-report")]
    public IActionResult GenerateReport()
    {
        var html = @"
            <h1>Monthly Sales Report</h1>
            <p>Generated on: " + DateTime.Now.ToString() + @"</p>
            <table>
                <tr><th>Product</th><th>Sales</th></tr>
                <tr><td>Product A</td><td>$5,000</td></tr>
                <tr><td>Product B</td><td>$3,500</td></tr>
            </table>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF file to browser
        return File(pdf.BinaryData, "application/pdf", "output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Esta acción del controlador crea un nuevo documento y envía archivos PDF directamente al navegador. La declaración return utiliza el manejo de respuesta de archivo incorporado del marco .NET Core. Las aplicaciones web ASP.NET Core pueden generar PDFs para reportes, facturas y otros documentos fácilmente.

Fichero PDF de salida

Cómo generar archivos PDF en Dotnet Core: Figura 3 - PDF creado en ASP.NET

Para aplicaciones MVC, también puedes renderizar HTML desde vistas Razor para crear un PDF:

[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Get invoice data from database
    var model = await GetInvoiceData(id);
    // Render Razor view to HTML string
    var html = await RenderViewToString("Invoice", model);
    // Convert HTML to PDF document
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return PDF file with appropriate file path
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Get invoice data from database
    var model = await GetInvoiceData(id);
    // Render Razor view to HTML string
    var html = await RenderViewToString("Invoice", model);
    // Convert HTML to PDF document
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return PDF file with appropriate file path
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este ejemplo de código muestra cómo ASP.NET Core se integra con IronPDF para generar documentos PDF a partir de plantillas Razor. La página renderizada desde la vista se convierte en un documento PDF profesional.

Conclusión

IronPDF transforma la generación de documentos PDF en .NET Core en un proceso simple y eficiente. Su motor de renderizado Chrome asegura una fidelidad perfecta al generar archivos PDF a partir de contenido HTML, mientras que la API intuitiva elimina la curva de aprendizaje típicamente asociada con la manipulación de PDFs. La biblioteca PDF proporciona buena documentación y soporte activamente mantenido para desarrolladores de ASP.NET Core.

Ya sea que estés creando PDFs para uso comercial o construyendo aplicaciones web empresariales, IronPDF proporciona las herramientas necesarias para la creación profesional de PDFs con opciones de licencia comercial disponibles. Los desarrolladores elogian constantemente la facilidad de uso y la calidad de renderizado de IronPDF.

Comienza tu prueba gratuita hoy con opciones de licencia diseñadas para equipos de todos los tamaños.

Preguntas Frecuentes

¿Cómo puedo generar documentos PDF en .NET Core?

Puede generar documentos PDF en .NET Core usando IronPDF, que le permite crear PDFs desde HTML, URLs y vistas Razor usando su avanzado motor de renderizado de Chrome.

¿Cuáles son las ventajas de usar IronPDF para la generación de PDFs?

IronPDF proporciona varias ventajas, incluyendo la facilidad de integración, soporte para renderizado de píxeles perfectos y la capacidad de crear PDFs desde diversas fuentes como HTML y URLs, haciendo de él una opción ideal para construir aplicaciones web que requieren generación de PDF.

¿Puede IronPDF manejar tareas complejas de generación de PDF?

Sí, IronPDF está diseñado para manejar tareas complejas de generación de PDF en el entorno .NET, proporcionando a los desarrolladores las herramientas necesarias para crear documentos PDF detallados y precisos.

¿Cuál es el papel del motor de renderizado de Chrome en IronPDF?

El motor de renderizado de Chrome en IronPDF asegura que los PDFs generados sean de píxeles perfectos, manteniendo la fidelidad del HTML original o del contenido web.

¿Es IronPDF adecuado para generar documentos comerciales como facturas e informes?

Absolutamente, IronPDF es muy adecuado para generar documentos comerciales como facturas e informes, ofreciendo un renderizado preciso y soporte para varios formatos de documentos.

¿Qué tipos de entrada puede convertir IronPDF en PDF?

IronPDF puede convertir entradas como HTML, URLs y vistas Razor en documentos PDF, brindando flexibilidad en la creación de contenido.

¿IronPDF es compatible con aplicaciones ASP.NET Core?

Sí, IronPDF es totalmente compatible con aplicaciones ASP.NET Core, permitiendo a los desarrolladores integrar sin problemas las capacidades de generación de PDF en sus proyectos web.

¿Cuáles son algunos casos de uso comunes de IronPDF en aplicaciones web?

Los casos de uso comunes de IronPDF incluyen la generación de PDFs para facturas, informes y cualquier otro documento comercial requerido por aplicaciones web.

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