Cómo generar PDF en .NET Core con IronPDF
Para generar archivos PDF en .NET Core, utilice ChromePdfRenderer de IronPDF para convertir cadenas HTML, páginas web o vistas Razor en documentos PDF con sólo unas pocas líneas de código, conservando todo el estilo CSS y la funcionalidad JavaScript.
La creación de documentos PDF en aplicaciones .NET Core es un requisito común al crear aplicaciones web que necesitan generar facturas, informes y otros documentos comerciales. IronPDF ofrece una biblioteca de PDF completa que simplifica la generación de PDF en ASP.NET Core mediante su motor de renderizado Chrome, ofreciendo archivos PDF con una precisión de píxeles impecable en todo momento. En esta guía, explorará cómo gestionar diversas tareas de generación de PDF en el entorno .NET 10, desde conversiones HTML sencillas hasta la generación de informes complejos mediante instrucciones de nivel superior de C#.
¿Cómo genera .NET Core archivos PDF?
IronPDF utiliza un motor de renderizado basado en Chrome para convertir contenido HTML en archivos PDF. Este enfoque significa que puede usar sus conocimientos existentes de HTML y CSS para crear archivos PDF sin tener que aprender API de PDF complejas y de bajo nivel ni tener que afrontar una curva de aprendizaje pronunciada. La biblioteca maneja la conversión automática de páginas web, admite la ejecución de JavaScript y diseños CSS responsivos.
La API de la biblioteca le permite generar documentos PDF a partir de cadenas HTML, URL o archivos HTML locales. Al convertir HTML a PDF, IronPDF conserva diseños complejos, estilos CSS, ejecución de JavaScript y contenido web dinámico. Esto lo convierte en una opción práctica para los desarrolladores .NET que necesitan capacidades confiables de conversión de PDF en sus aplicaciones.
El proceso de renderizado utiliza la misma tecnología que impulsa Google Chrome, lo que garantiza que las conversiones de HTML a PDF coincidan con lo que los usuarios ven en los navegadores modernos. Esto incluye soporte para funciones CSS3, fuentes web, gráficos SVG y sistemas de diseño modernos como Flexbox y CSS Grid. Debido a que el motor de renderizado está basado en Chrome, el resultado es predecible y consistente en los entornos de desarrollo, preparación y producción.
¿Cómo instalar IronPDF en un proyecto .NET 10?
Para comenzar se requiere una única instalación a través del Administrador de paquetes NuGet . Tiene dos opciones dependiendo de su flujo de trabajo.
Opción 1: Consola del administrador de paquetes en Visual Studio
Install-Package IronPdf
Install-Package IronPdf
Opción 2: CLI .NET
dotnet add package IronPdf
dotnet add package IronPdf
Para una guía de instalación paso a paso, consulte Guía de instalación de NuGet.
Para implementaciones de Docker o entornos Linux, es posible que se requieran dependencias del sistema adicionales. IronPDF es compatible con macOS, Windows, Linux, Azure y AWS Lambda, lo que lo hace adaptable a diversos escenarios de alojamiento. Después de la instalación, agregue una clave de licencia de prueba para desbloquear el conjunto completo de funciones durante el desarrollo. La prueba es gratuita y no requiere tarjeta de crédito, por lo que puede evaluar la biblioteca completamente antes de comprar una licencia comercial.
¿Cómo generar un PDF a partir de una cadena HTML?
La forma más directa de crear un PDF es convirtiendo contenido HTML. A continuación se muestra un ejemplo mínimo que utiliza declaraciones de nivel superior de C#:
using IronPdf;
// Instantiate the renderer
var renderer = new ChromePdfRenderer();
// Convert an HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>");
// Save to disk
pdf.SaveAs("hello.pdf");
using IronPdf;
// Instantiate the renderer
var renderer = new ChromePdfRenderer();
// Convert an HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>");
// Save to disk
pdf.SaveAs("hello.pdf");
Imports IronPdf
' Instantiate the renderer
Dim renderer As New ChromePdfRenderer()
' Convert an HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>")
' Save to disk
pdf.SaveAs("hello.pdf")
La clase ChromePdfRenderer se encarga del proceso de conversión. El objeto PdfDocument devuelto le da acceso a datos binarios, recuento de páginas y opciones de salida como guardar en un archivo o en un flujo de memoria. También puede adjuntar metadatos como título, autor y palabras clave del tema al archivo de salida.
El renderizador admite una amplia gama de opciones de renderizado. Puede configurar márgenes personalizados, establecer tamaños de papel, controlar la orientación de la página y ajustar las dimensiones de la ventana gráfica. Estas opciones garantizan que la salida PDF cumpla con los requisitos de formato específicos para documentos profesionales.
¿Cómo crear una factura PDF con estilos CSS?
Para un ejemplo más realista, aquí se explica cómo generar un documento de factura con estilo con marcado HTML y 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;
}
.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 #2026-001</h1>
<p>Date: February 28, 2026</p>
</div>
<div class='invoice-details'>
<h3>Bill To: Jane Smith</h3>
<table>
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<tr>
<td>Professional License</td>
<td>1</td>
<td>$749.00</td>
</tr>
</table>
<p class='total'>Total: $749.00</p>
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
// Apply custom margins
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;
}
.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 #2026-001</h1>
<p>Date: February 28, 2026</p>
</div>
<div class='invoice-details'>
<h3>Bill To: Jane Smith</h3>
<table>
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<tr>
<td>Professional License</td>
<td>1</td>
<td>$749.00</td>
</tr>
</table>
<p class='total'>Total: $749.00</p>
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
// Apply custom margins
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
Imports IronPdf
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; font-size: 14px; }
.invoice-header {
background-color: #2c3e50;
color: white;
padding: 20px;
}
.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 #2026-001</h1>
<p>Date: February 28, 2026</p>
</div>
<div class='invoice-details'>
<h3>Bill To: Jane Smith</h3>
<table>
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<tr>
<td>Professional License</td>
<td>1</td>
<td>$749.00</td>
</tr>
</table>
<p class='total'>Total: $749.00</p>
</div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
' Apply custom margins
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
Este ejemplo muestra la capacidad de IronPDF para manejar diseños complejos con estilo CSS, incluidas configuraciones de familias de fuentes, colores de fondo y formato de tabla. La biblioteca procesa el marcado HTML y produce un PDF que coincide con la apariencia visual del documento fuente.
Para una tipografía mejorada, IronPDF admite fuentes de Google y fuentes de íconos web, lo que le permite crear archivos PDF visualmente pulidos. La biblioteca también maneja diseños de documentos en capas. Puede agregar marcas de agua personalizadas o contenido de sellos a archivos PDF existentes.
¿Cómo se ve la factura PDF generada?

¿Cómo convertir una URL de página web a PDF?
IronPDF puede generar archivos PDF a partir de páginas web en vivo pasando una URL al renderizador. Esto es útil cuando necesitas capturar contenido web de forma dinámica o archivar una página pública:
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1500); // Allow dynamic content to load
// Render the URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save to disk
pdf.SaveAs("webpage.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1500); // Allow dynamic content to load
// Render the URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save to disk
pdf.SaveAs("webpage.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
renderer.RenderingOptions.WaitFor.RenderDelay(1500) ' Allow dynamic content to load
' Render the URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
' Save to disk
pdf.SaveAs("webpage.pdf")
La configuración RenderDelay garantiza que el contenido basado en JavaScript (gráficos, imágenes de carga lenta, tablas dinámicas) termine de renderizarse antes de que se capture el PDF. También puede configurar las condiciones WaitFor para esperar a que se completen determinados elementos del DOM o solicitudes de red. Para las páginas detrás de la autenticación, la biblioteca admite encabezados de solicitud HTTP y cookies personalizadas.
Para aplicaciones complejas de una sola página creadas con Angular o React, las condiciones de espera adicionales ayudan a garantizar que toda la representación del lado del cliente se complete antes de que se tome la instantánea en PDF.

¿Cómo integrar la generación de PDF en un controlador ASP.NET Core ?
Generar archivos PDF dentro de una API web ASP.NET Core es sencillo. El siguiente ejemplo muestra una acción de controlador que crea un informe HTML y lo devuelve como una descarga de archivo:
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("MMMM dd, yyyy") + @"</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 the PDF bytes as a downloadable file
return File(pdf.BinaryData, "application/pdf", "monthly-report.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("MMMM dd, yyyy") + @"</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 the PDF bytes as a downloadable file
return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf");
}
}
Imports Microsoft.AspNetCore.Mvc
Imports IronPdf
<ApiController>
<Route("api/[controller]")>
Public Class PdfController
Inherits ControllerBase
<HttpGet("generate-report")>
Public Function GenerateReport() As IActionResult
Dim html As String = "
<h1>Monthly Sales Report</h1>
<p>Generated on: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</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>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Return the PDF bytes as a downloadable file
Return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf")
End Function
End Class
El tipo de retorno File() indica a ASP.NET Core que transmita los bytes PDF sin procesar al navegador del cliente con el tipo MIME correcto. El cliente recibe un PDF descargable sin ningún archivo intermedio en el disco. Puede agregar encabezados y pies de página a cada página, o aplicar marcas de agua para borradores o documentos confidenciales.
Para aplicaciones de producción, considere usar la generación de PDF asincrónica para mantener el flujo de solicitudes sin bloqueos, en particular al generar documentos grandes o complejos.
¿Cómo renderizar una vista Razor en PDF en MVC?
Para las aplicaciones MVC, puede representar una vista Razor en una cadena HTML y luego convertirla a PDF. Este patrón mantiene sus plantillas de documentos dentro de archivos .cshtml estándar:
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
// Fetch invoice data from the database
var model = await GetInvoiceData(id);
// Render the Razor view to an HTML string
var html = await RenderViewToString("Invoice", model);
// Convert the rendered HTML a PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Return the file to the browser
return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
// Fetch invoice data from the database
var model = await GetInvoiceData(id);
// Render the Razor view to an HTML string
var html = await RenderViewToString("Invoice", model);
// Convert the rendered HTML a PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Return the file to the browser
return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
<HttpGet>
Public Async Function DownloadInvoice(id As Integer) As Task(Of IActionResult)
' Fetch invoice data from the database
Dim model = Await GetInvoiceData(id)
' Render the Razor view to an HTML string
Dim html = Await RenderViewToString("Invoice", model)
' Convert the rendered HTML to a PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Return the file to the browser
Return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf")
End Function
Este enfoque le permite mantener sus plantillas de facturas o informes como vistas normales de Razor , utilizando enlace de modelos y vistas parciales. El método de ayuda RenderViewToString (una utilidad común en los proyectos MVC) convierte la vista en una cadena HTML sin formato que IronPDF procesa a continuación. Para proyectos de Razor Pages o Blazor Server, se aplican patrones similares.

¿Qué funciones PDF avanzadas admite IronPDF ?
Más allá de la conversión básica de HTML a PDF, IronPDF ofrece un amplio conjunto de funciones de manipulación de documentos:
- Fusionar y dividir : combine varios PDF o extraiga páginas específicas utilizando la API de fusión y división
- Firmas digitales : Aplique firmas digitales basadas en certificados para la autenticación de documentos
- Extracción de texto : extraiga texto de documentos PDF para indexación de búsqueda o procesamiento de datos
- Formularios PDF : cree y complete formularios PDF mediante programación para flujos de trabajo de documentos automatizados
- Convertir páginas PDF a imágenes : Exportar páginas PDF a imágenes para miniaturas o vistas previas
- Representación de cadenas HTML : control detallado sobre las opciones de conversión de cadenas HTML a PDF
- Seguridad : la protección con contraseña, el cifrado y los controles de permisos mantienen seguros los documentos confidenciales.
Para cargas de trabajo donde el rendimiento es crítico, IronPDF proporciona métodos asincrónicos y compatibilidad con subprocesos múltiples. La biblioteca también maneja la conversión de imágenes a PDF, la compresión de PDF y la linealización para una visualización web más rápida.
| Función | Descripción | Caso de uso típico |
|---|---|---|
| HTML a PDF | Convierte cadenas HTML, archivos o URL a PDF | Facturas, informes, archivado de páginas web |
| Razor a PDF | Convierte vistas de Razor (.cshtml) en PDF | Aplicaciones MVC y Razor Pages |
| Fusionar / Dividir | Combina o divide documentos PDF | Agrupación de documentos, extracción de páginas |
| Firmas Digitales | Aplica firmas de certificado X.509 | Documentos legales, flujos de trabajo contractuales |
| Extracción de texto | Lee contenido de texto de archivos PDF existentes | Indexación de búsquedas, migración de datos |
| Formularios PDF | Crea y rellena campos de formulario interactivos | Recopilación automatizada de datos |
| Encabezados y pies de página | Agrega números de página, fechas y texto personalizado. | Formato de documentos profesional |
¿Cómo empezar a utilizar IronPDF en .NET 10?
IronPDF hace que la generación de PDF en .NET Core sea sencilla. Su motor de renderizado Chrome garantiza una fidelidad precisa al crear archivos PDF a partir de contenido HTML, mientras que el diseño de API elimina la complejidad típica asociada con la manipulación de PDF. La biblioteca proporciona documentación completa para todas las funciones y admite la implementación en Windows, Linux, macOS, Azure Functions, AWS Lambda y contenedores Docker.
Ya sea que esté creando facturas, informes o herramientas de gestión de documentos, IronPDF proporciona las herramientas necesarias para la creación profesional de PDF. Revise la lista completa de funciones para comprender el alcance total de las capacidades de la biblioteca o verifique las opciones de licencia adecuadas para desarrolladores individuales y equipos empresariales.
Comience hoy una prueba gratuita para probar IronPDF en su propio proyecto .NET 10. La licencia de prueba cubre el conjunto completo de funciones para que pueda evaluar la generación de PDF, la fusión, la firma, el llenado de formularios y la extracción de texto antes de comprometerse con una licencia.
Para obtener más contexto, explore la documentación de IronPDF para encontrar referencias de API, guías de plataforma y ejemplos de código que cubren escenarios comunes de PDF .NET .
Referencias externas:
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.


