USANDO IRON SUITE

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:

  1. ¿Por qué comparar herramientas de HTML a PDF?
  2. IronPDF: Conversión de HTML a PDF
  3. Aspose: Conversión de HTML a PDF
  4. iText 9: Conversión de HTML a PDF
  5. wkhtmltopdf: Conversión de HTML a PDF
  6. PuppeteerSharp: Conversión de HTML a PDF
  7. 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

HTML a PDF en C# para Desarrolladores .NET (La Guía Definitiva): Figura 1

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.com
$vbLabelText   $csharpLabel

Documento PDF generado

HTML a PDF en C# para Desarrolladores .NET (La Guía Definitiva): Figura 2

Explicación:

  1. 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.
  2. RenderHtmlAsPdf: Este método toma una cadena HTML como entrada y genera un documento PDF.
  3. 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 Class
$vbLabelText   $csharpLabel

Archivo 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.com
$vbLabelText   $csharpLabel

Output

HTML a PDF en C# para Desarrolladores .NET (La Guía Definitiva): Figura 5

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")
$vbLabelText   $csharpLabel

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 dataDir contiene el directorio donde se guardará el PDF generado.

Archivo HTML local a PDF

  • Se crea un WebRequest para 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")
$vbLabelText   $csharpLabel

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.com
$vbLabelText   $csharpLabel

Output

HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 10

Explicación:

  • El contenido HTML de responseFromServer se convierte en una matriz de bytes y se carga en un MemoryStream.
  • Se crea un WebRequest para 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 responseFromServer se convierte en un arreglo de bytes y luego se carga en un MemoryStream.
  • HtmlLoadOptions se 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.com
$vbLabelText   $csharpLabel

Output

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.com
$vbLabelText   $csharpLabel

Output

HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 13

Explicación:

  • Se crea un Aspose.Pdf.Document del 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.com
$vbLabelText   $csharpLabel

Output

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 Class
$vbLabelText   $csharpLabel

Output

HTML a PDF en C# para desarrolladores .NET (La guía definitiva): Figura 16

Explicación:

  • En este ejemplo, wkhtmltopdf acepta 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.com
$vbLabelText   $csharpLabel

Output

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.com
$vbLabelText   $csharpLabel

Output

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.com
$vbLabelText   $csharpLabel

Output

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 Class
$vbLabelText   $csharpLabel

Output

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 Class
$vbLabelText   $csharpLabel

Output

¡ 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.
HerramientaCadena HTML a PDFArchivo HTML a PDFURL a PDFNotas
logotipo de IronPDF
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.
logotipo de Aspose
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.
logotipo de iText
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.
logotipo de wkhtmltopdf
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.
logotipo de PuppeteerSharp
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.