HTML a PDF en C# para Desarrolladores .NET (La Guía Definitiva)
Introducción
En el mundo actual impulsado por la web, la capacidad de convertir contenido HTML en documentos PDF (formato de documento portátil) es una característica crucial para muchas aplicaciones. Ya sea para generar archivos PDF a partir de informes, facturas o archivar contenido web, la conversión de HTML a PDF agiliza los flujos de trabajo y garantiza un formato uniforme de PDF de alta calidad. Bibliotecas como IronPDF proporcionan una manera amigable para los desarrolladores de manejar esta conversión, admitiendo contenido dinámico, formularios HTML y representación precisa de CSS y JavaScript .
Para los desarrolladores .NET, utilizar el convertidor de HTML a PDF adecuado repercute en la eficiencia, la simplicidad del código y la calidad de generación de PDF. Las bibliotecas modernas permiten a los desarrolladores convertir directamente cadenas HTML, páginas web completas o archivos HTML en documentos PDF renderizados en solo unas pocas líneas de código, lo que permite crear documentos dinámicos, encabezados personalizados y versiones imprimibles de contenido web.
Lo que aprenderás
En esta guía, aprenderá a convertir HTML a PDF en C# en varias bibliotecas y explorará sus capacidades de conversión de PDF, incluida la manipulación de documentos PDF, formularios HTML, márgenes personalizados y PDF seguros. Los temas que cubriremos en este artículo son:
- ¿Por qué comparar herramientas de HTML a PDF?
- IronPDF: Conversión de HTML a PDF
- Aspose: Conversión de HTML a PDF
- iText 9: Conversión de HTML a PDF
- wkhtmltopdf: Conversión de HTML a PDF
- PuppeteerSharp: Conversión de HTML a PDF
- Conclusión: ¿Por qué elegir IronPDF?
Al final, comprenderá por qué IronPDF se destaca como un convertidor de HTML a PDF eficiente y fácil de usar para desarrolladores. Asegúrese de consultar nuestras otras guías de comparación, donde analizamos en profundidad cómo se compara IronPDF con Aspose.PDF , iText 9 , wkhtmltopdf y PuppeteerSharp para ver cuál se adapta mejor a su proyecto y por qué IronPDF sale ganando.
¿Por qué comparar herramientas HTML con PDF?
Seleccionar la herramienta adecuada de conversión de HTML a PDF es esencial para asegurar que tu aplicación cumpla con los requisitos de desempeño, calidad y costo. Con numerosas opciones disponibles, cada una con diferentes capacidades de conversión de PDF, una comparación exhaustiva ayuda a tomar una decisión informada. Aquí están los criterios clave de evaluación a considerar:
- Complejidad de integración: qué tan fácil se integra la biblioteca con sus proyectos .NET existentes, como usar el Administrador de paquetes NuGet para una instalación simple y la configuración de la pestaña de integración de API.
- Simplicidad del código: la facilidad de escribir y mantener el código fuente, incluidos ejemplos de código mínimos como solo unas pocas líneas para convertir cadenas HTML o páginas web completas en documentos PDF generados.
- Precisión de renderizado: la capacidad del motor de renderizado para manejar con precisión código HTML, ejecución de JavaScript, impresión CSS, formularios HTML y otro contenido dinámico mientras produce PDF de alta calidad.
- Rendimiento a escala: qué tan bien funciona el convertidor de PDF bajo carga pesada al generar archivos PDF desde múltiples páginas HTML o contenido dinámico.
- Licencias y rentabilidad: Los modelos de precios, como la licencia comercial, y la idoneidad para el presupuesto de su proyecto.
Al evaluar estos factores, los desarrolladores pueden elegir una herramienta que se ajuste tanto a los requisitos técnicos como a las limitaciones financieras, ya sea que trabajen con proyectos .NET Core o .NET Framework en Visual Studio.
IronPDF: Conversión de HTML a PDF

IronPDF es una biblioteca .NET completa diseñada específicamente para desarrolladores. Proporciona métodos listos para usar para convertir cadenas HTML , archivos locales y URL activas a PDF con una configuración mínima. Su motor de renderizado basado en Chrome garantiza una alta precisión, incluyendo compatibilidad con CSS y JavaScript. IronPDF es comercial pero ofrece un sólido soporte y una API sencilla.
Cadena HTML a PDF
Convertir HTML de una cadena a un PDF es simple con IronPDF. 1. ChromePdfRenderer: Esta clase es la herramienta principal para convertir HTML a PDF en IronPDF.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comDocumento PDF generado

Explicación:
RenderHtmlAsPdf: Este método toma una cadena HTML como entrada y genera un documento PDF. Viene preconfigurado para manejar casi todos los casos de uso con mínima configuración.RenderHtmlAsPdf: Este método toma una cadena HTML como entrada y genera un documento PDF.SaveAs: El PDF generado se guarda en la ruta especificada (output.pdf).
Archivo HTML local a PDF
- RenderHtmlFileAsPdf: Toma un archivo HTML local y lo convierte en un PDF.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("template.html")
pdf.SaveAs("report.pdf")
End Sub
End ClassArchivo HTML de Entrada
IronPDF es especialmente poderoso al convertir contenido web dinámico desde URLs, incluidas páginas que usan JavaScript.
Output
- RenderUrlAsPdf: Obtiene el contenido de la URL, incluidos los elementos renderizados por JavaScript, y lo convierte en PDF.
Explicación:
- RenderHtmlFileAsPdf: Toma un archivo HTML local y lo convierte en un PDF. Aspose.PDF es otra potente biblioteca para la manipulación de PDFs, con soporte para convertir HTML a PDF.
URL a PDF
IronPDF es especialmente poderoso al convertir contenido web dinámico de URLs, incluyendo páginas que utilizan JavaScript.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput

Explicación:
- Documento doc: Crea un nuevo documento para guardar la cadena HTML convertida.
Veredicto / Cuándo usarlo
IronPDF es perfecto para desarrolladores que necesitan una integración de API sencilla, un código mínimo y soporte para manipular documentos PDF, crear documentos dinámicos, formularios HTML, encabezados personalizados y versiones imprimibles de contenido web. Ideal para proyectos .NET Core o .NET Framework en Visual Studio.
Aspose: Conversión de HTML a PDF
FragmentoHtml fragmentoHtml: Esta es la cadena HTML que estamos convirtiendo.
- pagina.getParagraphs().Add(fragmentoHtml): Añadir el HTML al documento. * Página página: Añade una nueva página al documento vacío creado.
Cadena HTML a PDF
Aspose también maneja la conversión de archivos HTML locales a PDFs, pero requiere más configuración que IronPDF.
Example:
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");Imports Aspose.Html
Imports Aspose.Html.Saving
Private doc As New Document()
Private page As Page = doc.getPages().Add()
Private htmlFragment As New HtmlFragment("<h1>HTML String</h1>")
page.getParagraphs().Add(htmlFragment)
doc.Save("HTMLStringUsingDOM.pdf")Output
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 7
Explicación:
- var document = new HTMLDocument("document.html"): Carga el archivo HTML.
- var options: Crea un nuevo objeto PdfSaveOptions.
- Converter.ConvertHTML(): Convierte el HTML a PDF.
- page.getParagraphs().Add(htmlFragment): Agrega el HTML al documento.
- La variable
dataDircontiene el directorio donde se guardará el PDF generado.
Archivo HTML local a PDF
- Se crea un
WebRequestpara acceder a la URL de la página principal de Wikipedia, y se utilizan credenciales predeterminadas para la solicitud.
Example:
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");Imports Aspose.Html
Imports Aspose.Html.Converters
Imports Aspose.Html.Saving
Private document = New HTMLDocument("document.html")
Private options = New PdfSaveOptions()
Converter.ConvertHTML(document, options, "output.pdf")HTML de entrada:
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 8
Output:
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 9
Explicación:
- El método
GetResponse()envía la solicitud y recupera la respuesta como un HttpWebResponse. - var options: Crea un nuevo objeto PdfSaveOptions.
- doc.Save: Guarda el contenido HTML como un PDF.
URL a PDF
- var options: Crea un objeto PdfSaveOptions.
Example:
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 10
Explicación:
- El contenido HTML de
responseFromServerse convierte en una matriz de bytes y se carga en unMemoryStream. - Se crea un
WebRequestpara acceder a la URL de la página principal de Wikipedia, y se utilizan las credenciales predeterminadas para la solicitud. - El método
GetResponse()envía la solicitud y recupera la respuesta como un HttpWebResponse. - Se obtiene un flujo de la respuesta, y un StreamReader lee todo el contenido HTML de la página en la cadena
responseFromServer. - El contenido HTML de
responseFromServerse convierte en un arreglo de bytes y luego se carga en unMemoryStream. HtmlLoadOptionsse utiliza para especificar la URL base para enlaces relativos y otras configuraciones.- HtmlConverter: Convierte un archivo HTML directamente a un PDF.
Veredicto / Cuándo usarlo
Aspose.PDF es ideal para proyectos empresariales que requieren manipulación y conversión de PDF avanzadas. Es potente pero menos optimizado para tareas rápidas de conversión de HTML a PDF.
iText 9: Conversión de HTML a PDF
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 11
iText 9 es la última versión de la biblioteca PDF de iText, que ofrece funciones mejoradas para generar y manipular documentos PDF en aplicaciones .NET. Introduce una API más optimizada y extensible, mejorando el rendimiento y proporcionando un mejor soporte para los estándares PDF modernos.
Cadena HTML a PDF
A continuación se muestra un ejemplo básico de cómo convertir una cadena HTML en un documento PDF utilizando iText 9.
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 12
Archivo HTML local a PDF
iText 9 puede convertir tipos de archivos HTML a PDF utilizando la clase HtmlConverter.ConvertToPdf.
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 13
Explicación:
- Se crea un
Aspose.Pdf.Documentdel flujo de memoria con el HTML y se guarda como PDF en el directorio especificado.
URL a PDF
iText7 también soporta la conversión de contenido de URLs.
Example:
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 14
Explicación:
- HttpClient.GetStringAsync(url): descarga el contenido HTML real de la URL.
- HtmlConverter.ConvertToPdf(htmlContent, …): Convierte la cadena HTML obtenida en un PDF renderizado.
Veredicto / Cuándo usarlo
iText 9 es adecuado para desarrolladores que necesitan una solución robusta y de nivel empresarial para la creación, manipulación y conversión de PDF de HTML a PDF. Funciona bien cuando necesita un control preciso sobre el PDF generado, integración con flujos de trabajo de iText existentes o funciones PDF avanzadas como firmas y formularios digitales. Sin embargo, para tareas simples de conversión de HTML a PDF, iText 9 es más pesado y complejo que bibliotecas optimizadas como IronPDF.
wkhtmltopdf: Conversión de HTML a PDF
¡ HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 15
Estado de archivo y mantenimiento
Es importante tener en cuenta que wkhtmltopdf ya no se mantiene activamente . Su repositorio de GitHub se archivó oficialmente en enero de 2023 y se marcó como de solo lectura, lo que significa que no se aplicarán futuras actualizaciones, correcciones de errores o parches de seguridad.
Implicación para los desarrolladores : si bien wkhtmltopdf aún puede ser efectivo para casos de uso muy básicos, su estado sin mantenimiento y su motor de renderizado obsoleto lo convierten en una opción riesgosa, especialmente para entornos de producción o aplicaciones que manejan contenido HTML dinámico o externo.
- wkhtmltopdf maneja directamente archivos locales, haciendo el comando directo. Convertir una URL a PDF es fácil con wkhtmltopdf.
Cadena HTML a PDF
wkhtmltopdf requiere convertir cadenas HTML escribiéndolas primero en un archivo.
Example:
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}Imports System
Imports System.IO
Imports System.Diagnostics
Friend Class Program
Shared Sub Main(ByVal args() As String)
' HTML string to be converted to PDF
Dim html As String = "<html><body><h1>Hello, World!</h1></body></html>"
' Write HTML string to temporary file
Dim tempHtmlFile As String = Path.Combine(Path.GetTempPath(), "temp.html")
File.WriteAllText(tempHtmlFile, html)
' Set output PDF path
Dim outputPdfFile As String = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf")
' Execute wkhtmltopdf command
Dim process As New Process()
process.StartInfo.FileName = "wkhtmltopdf"
process.StartInfo.Arguments = $"""{tempHtmlFile}"" ""{outputPdfFile}"""
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process.Start()
process.WaitForExit()
' Clean up the temporary HTML file
File.Delete(tempHtmlFile)
Console.WriteLine($"PDF saved to: {outputPdfFile}")
End Sub
End ClassOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 16
Explicación:
- En este ejemplo,
wkhtmltopdfacepta directamente URLs como entrada. - La URL se pasa como un argumento a
wkhtmltopdf, y la salida se guarda como un PDF en la ruta especificada.
PuppeteerSharp: Conversión de HTML a PDF
Archivo HTML local a PDF
Para convertir un archivo HTML local a un PDF usando wkhtmltopdf, puedes apuntar directamente a la ruta del archivo HTML.
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 17
Explicación:
A continuación se presentan ejemplos de cómo usar PuppeteerSharp para convertir HTML a PDF.
- wkhtmltopdf maneja archivos locales, lo que simplifica el comando.
URL a PDF
- Puppeteer.LaunchAsync: Lanza una nueva instancia de Chromium en modo sin cabeza. Solo pasa la URL al comando.
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 18
Explicación:
- page.PdfAsync: Convierte el HTML cargado en un PDF y lo guarda en un archivo.
- La URL se pasa como un argumento a
wkhtmltopdf, y la salida se guarda como un PDF en la ruta especificada.
PuppeteerSharp: Conversión de HTML a PDF
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 19
PuppeteerSharp es un contenedor .NET para Puppeteer de Google, que proporciona control sobre Chrome/Chromium sin interfaz gráfica. Se destaca en la representación de páginas dinámicas con mucho JavaScript, pero requiere descargar y administrar una instancia de Chromium, lo que agrega sobrecarga. Es de código abierto bajo Apache 2.0.
Cadena HTML a PDF
- page.PdfAsync: Convierte la página web en la URL en un PDF y lo guarda.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 20
Explicación:
- Puppeteer.LaunchAsync: Lanza una nueva instancia de Chromium en modo sin cabeza.
- page.SetContentAsync: Carga la cadena HTML en la página del navegador.
- page.PdfAsync: Convierte el HTML en un PDF y lo guarda en un archivo.
Archivo HTML local a PDF
Para ver más de esta biblioteca, revisa las Guías de Cómo Hacerlo que demuestran sus características.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Load the local HTML file
Await page.GoToAsync("file:///path/to/your/template.html")
' Save the page as a PDF
Await page.PdfAsync("html-file-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End ClassOutput
HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 21
Explicación:
- page.GoToAsync: Carga el archivo HTML local (asegúrate de usar la ruta correcta
[file://]()). - page.PdfAsync: Convierte el contenido del archivo HTML local en un PDF.
URL a PDF
Sin embargo, elegir la herramienta adecuada para tu proyecto depende de factores como la facilidad de integración, soporte para contenido dinámico, rendimiento y flexibilidad.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Navigate to the URL
Await page.GoToAsync("https://example.com")
' Save the page as a PDF
Await page.PdfAsync("url-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End ClassOutput
¡ HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 22
Explicación:
- IronPDF destaca por su simplicidad, integración directa con .NET y capacidad para manejar HTML complejo, incluidas páginas renderizadas con JavaScript.
- page.PdfAsync: Convierte la página web en la URL en un PDF y lo guarda.
Veredicto / Cuándo usarlo
PuppeteerSharp es ideal cuando necesitas una representación con precisión de píxeles de aplicaciones web modernas con mucho uso de JavaScript. Es más complejo que IronPDF, pero se destaca en el manejo de contenido web dinámico.
¿Por qué elegir IronPDF?
- IronPDF se destaca por su simplicidad, integración directa con .NET y manejo de HTML complejo con JavaScript. - Aspose tiene amplias características de manipulación de PDFs, pero su conversión de HTML a PDF requiere más configuración. Más allá de la conversión de HTML a PDF, IronPDF ofrece una amplia gama de funciones para crear documentos PDF a partir de varios tipos de archivos, editar y agregar documentos PDF existentes, marcas de agua, seguridad de archivos PDF y mucho más. - wkhtmltopdf es ideal para la conversión básica de HTML a PDF con una interfaz de línea de comandos, pero carece de la integración y flexibilidad de una biblioteca completa de .NET.
Conclusión
- iText7 ofrece una base sólida para crear PDFs, aunque puede necesitar más codificación para convertir HTML, especialmente contenido dinámico. IronPDF , Aspose , iText 9 , wkhtmltopdf y PuppeteerSharp ofrecen soluciones sólidas para convertir contenido HTML en documentos PDF de calidad profesional. En última instancia, la herramienta adecuada depende de tus requisitos específicos, pero con las opciones discutidas aquí, estás bien preparado para encontrar la solución perfecta para tu proyecto.
| Herramienta | Cadena HTML a PDF | Archivo HTML a PDF | URL a PDF | Notas |
|---|---|---|---|---|
IronPDF | Simple con RenderHtmlAsPdf para cadenas HTML. Fácil de usar y se integra perfectamente con aplicaciones .NET. | Utiliza RenderHtmlFileAsPdf , maneja recursos vinculados (CSS, JS) automáticamente. | Utiliza RenderUrlAsPdf , admite páginas con mucho JavaScript y contenido dinámico. | Totalmente integrado en .NET, lo que lo hace ideal para desarrolladores .NET. Compatible con cadenas HTML, archivos y URL. |
![]() Aspose | Requiere más configuración. Utiliza HtmlFragment en un objeto Document para convertir cadenas HTML. | Requiere HtmlDocument y PdfSaveOptions para la conversión de archivos HTML locales. Requiere más configuración que IronPDF. | Requiere una configuración adicional usando WebRequest para obtener contenido antes de convertir con HtmlLoadOptions . | Robusto para diversas manipulaciones de documentos, pero la configuración puede ser más compleja. Ideal para necesidades de PDF más complejas. |
![]() iText7 | Utiliza HtmlConverter.ConvertToPdf para convertir cadenas HTML a PDF. | Utiliza HtmlConverter.ConvertToPdf para convertir archivos HTML locales a PDF. | Similar al manejo de archivos locales, utiliza HtmlConverter.ConvertToPdf . | Ideal para desarrolladores que necesitan más control sobre la manipulación de PDF más allá de la conversión de HTML a PDF. |
![]() wkhtmltopdf | Convierte cadenas HTML escribiéndolas primero en un archivo. Utiliza la herramienta de línea de comandos para generar archivos PDF. | Convierte directamente archivos HTML locales a PDF señalando las rutas de los archivos. | Convierte directamente las URL a PDF pasando la URL a la herramienta de línea de comandos. | Es principalmente una herramienta de línea de comandos; puede requerir pasos adicionales para su integración en .NET. Ideal para conversiones sencillas. |
![]() TitiriteroSharp | Utiliza page.SetContentAsync para cargar la cadena HTML y luego page.PdfAsync para generar un PDF. | Carga un archivo HTML local a través de page.GoToAsync y luego lo convierte a PDF. | Carga una URL y la convierte a PDF usando page.GoToAsync y page.PdfAsync . | Ideal para páginas dinámicas, especialmente con contenido con mucho JavaScript. Requiere descargar e iniciar Chromium. |
IronPDF se destaca por su simplicidad, integración directa con .NET y capacidad para manejar HTML complejo , incluidas páginas renderizadas en JavaScript. Es perfecto para desarrolladores que buscan una solución fácil de usar con una configuración mínima.
Aspose ofrece amplias funciones de manipulación de PDF, pero sus capacidades de conversión de HTML a PDF requieren más configuración, especialmente para manejar archivos locales y recursos externos.
iText 9 proporciona una base sólida para quienes buscan crear documentos PDF, aunque puede requerir codificación adicional para convertir HTML a PDF, especialmente para contenido dinámico. Es una excelente opción para proyectos donde se necesita manipulación de PDF personalizada.
wkhtmltopdf es ideal para la conversión básica de HTML a PDF con una interfaz de línea de comandos, pero carece de la integración y flexibilidad de una biblioteca .NET completa.
- PuppeteerSharp , que aprovecha Chrome sin interfaz gráfica, es la herramienta ideal para renderizar páginas web complejas y dinámicas y convertirlas en archivos PDF, especialmente cuando se trabaja con contenido con mucho JavaScript.
Para la mayoría de los desarrolladores .NET que buscan una solución sencilla y todo en uno, vale la pena probar IronPDF hoy para experimentar sus potentes funciones por sí mismo. Desde la generación de nuevos documentos PDF hasta la edición de PDF existentes, explore usted mismo la gama completa de funciones de IronPDF. Simplemente instale IronPDF y utilice la versión de prueba gratuita para probarlo usted mismo. Descubra cómo puede mejorar sus flujos de trabajo de PDF hoy mismo.
En última instancia, la herramienta adecuada depende de sus requisitos específicos, pero con las opciones analizadas aquí, estará bien equipado para encontrar la solución perfecta para su proyecto.
Tenga en cuenta: Aspose, iText, wkhtmltopdf y PuppeteerSharp son marcas registradas de sus respectivos propietarios. Este sitio no está afiliado ni aprobado por Aspose, iText, wkhtmltopdf o Puppeteer. Las marcas y logos son propiedad de sus respectivos dueños. Las comparaciones se proporcionan sólo con fines informativos y se basan en información públicamente disponible al momento de redactarse.



