Saltar al pie de página
USANDO IRONPDF

C# Generar PDF Comparación de 7 Bibliotecas (Herramientas Gratuitas y de Pago)

La funcionalidad de generación de PDF en C# es crítica para muchas aplicaciones modernas, desde crear informes hasta sistemas de facturación. En este artículo, exploraremos seis formas populares de generar archivos PDF usando C#, destacando tanto librerías basadas en código, como IronPDF, así como APIs y herramientas en línea. Ya sea que necesite generar archivos PDF dinámicamente en una aplicación web o simplemente crear archivos PDF a partir de documentos existentes, estas herramientas lo tienen cubierto.

1. IronPDF

IronPDF es una biblioteca premium .NET PDF diseñada para desarrolladores que necesitan una conversión de archivos HTML a PDF de alta calidad. IronPDF utiliza un motor de renderizado basado en Chromium para asegurar conversiones precisas, siendo una elección perfecta para aplicaciones web que quieran convertir páginas HTML o informes basados en web a archivos PDF en C#. La herramienta es conocida por su manejo robusto de documentos PDF existentes y proporciona funciones para editar, fusionar o dividir PDFs.

IronPDF se integra fácilmente en los proyectos de C# a través de NuGet Package Manager, y con solo unas pocas líneas de código, puede comenzar a generar documentos PDF. Es una herramienta versátil tanto para contenido HTML dinámico como para salidas de archivos PDF generadas por servidor.

Características clave

  • Conversión de HTML a PDF: IronPDF se destaca en la conversión de páginas HTML complejas, incluida la compatibilidad con la ejecución de JavaScript y CSS moderno, directamente en un PDF. Utiliza un motor de renderizado basado en Chromium, asegurando que la salida se vea idéntica a lo que vería en un navegador web.
  • Manipulación de PDF: IronPDF le permite fusionar, dividir y modificar documentos PDF existentes fácilmente.
  • Opciones de estilo avanzadas: IronPDF admite hojas de estilo externas, fuentes personalizadas y JavaScript, lo que le permite crear documentos con un gran estilo. Es perfecto para facturas, informes y contenido basado en web.
  • Funciones de seguridad: IronPDF ofrece funciones para agregar protección con contraseña, firmas digitales y configurar permisos para restringir acciones como imprimir, copiar o editar el PDF.
  • Manejo de formularios: IronPDF permite a los desarrolladores crear, completar y leer formularios PDF mediante programación, lo que lo hace ideal para aplicaciones que necesitan entradas del usuario en formato PDF.
  • Administrador de paquetes NuGet: instálelo y administre fácilmente a través de la consola del administrador de paquetes en Visual Studio.

Ejemplo de código

using IronPdf;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";

        // Create an instance of ChromePdfRenderer
        ChromePdfRenderer renderer = new ChromePdfRenderer(); 

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); 

        // Save the PDF to a specified file
        pdf.SaveAs("Generated.pdf"); 
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";

        // Create an instance of ChromePdfRenderer
        ChromePdfRenderer renderer = new ChromePdfRenderer(); 

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); 

        // Save the PDF to a specified file
        pdf.SaveAs("Generated.pdf"); 
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		Dim html As String = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>"

		' Create an instance of ChromePdfRenderer
		Dim renderer As New ChromePdfRenderer()

		' Render the HTML as a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

		' Save the PDF to a specified file
		pdf.SaveAs("Generated.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. Importación de espacio de nombres: using IronPdf; importa la biblioteca IronPDF para acceder a sus clases y métodos.
  2. Cadena HTML: la variable 'html' contiene el contenido HTML que desea convertir a PDF.
  3. Instancia de renderizador: new ChromePdfRenderer(); crea una instancia de la clase ChromePdfRenderer, que proporciona métodos para renderizar contenido HTML en formato PDF.
  4. Renderizar PDF: PdfDocument pdf = renderer.RenderHtmlAsPdf(html); convierte la cadena HTML en un documento PDF.
  5. Guardar PDF: pdf.SaveAs(&quot;Generated.pdf&quot;); guarda el PDF generado en la ruta de archivo especificada.

Ventajas

  • Excelente calidad de renderizado para contenido web.
  • Soporte sólido para formularios, hipervínculos y marcadores.

Contras

  • Las tarifas de licencia pueden ser una consideración para proyectos más grandes.
  • Características más avanzadas pueden requerir un aprendizaje más profundo.

2. iTextSharp

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 2

iTextSharp es una biblioteca .NET PDF bien establecida que proporciona una amplia funcionalidad para crear y editar archivos PDF. Es ampliamente utilizada en industrias como la financiera y legal, donde los documentos deben ser personalizados y seguros. iTextSharp le permite crear archivos PDF desde cero, rellenar formularios y modificar archivos PDF, proporcionando un control extenso sobre el contenido del documento. Es particularmente útil para aplicaciones empresariales que necesitan generar archivos PDF con diseños precisos y datos dinámicos, como facturas o contratos.

Características clave

  • Capacidades completas de creación de PDF: iTextSharp facilita la creación de un archivo PDF en C# desde cero, lo que permite a los desarrolladores agregar texto, imágenes, tablas y gráficos vectoriales. Proporciona control completo sobre el diseño del documento, incluyendo la capacidad de definir tamaños de página, márgenes y metadatos.
  • Relleno de formularios: una fortaleza significativa de iTextSharp es su capacidad para manejar formularios PDF (AcroForms). Puede crear formularios con varios campos de entrada y luego rellenarlos programáticamente, una característica útil en flujos de trabajo de generación de documentos automatizados.
  • Conversión de XML a PDF: iTextSharp tiene un soporte sólido para convertir datos XML a PDF usando XFA (Arquitectura de formularios XML). Esto es particularmente valioso en industrias donde los datos XML necesitan ser formateados en formularios o informes estándar.
  • Seguridad PDF: iTextSharp incluye funciones avanzadas como agregar cifrado, firmas digitales y marcas de agua para garantizar la autenticidad del documento y proteger datos confidenciales.
  • Extracción y manipulación de texto: puede extraer texto de archivos PDF existentes, reorganizar el contenido del documento o manipular elementos de la página, lo que lo hace útil para el posprocesamiento de documentos o la generación de informes resumidos a partir de archivos PDF complejos.

Ejemplo de código

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

namespace Helpers
{
    public class PdfGenerator
    {
        public static byte[] GeneratePdfFromFragment(string htmlFragment)
        {
            var html = string.Format(@"
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment);
            return Generate(html);
        }

        public static byte[] GeneratePdfFromPage(string htmlPage)
        {
            return Generate(htmlPage);
        }

        private static byte[] Generate(string html)
        {
            using (var memoryStream = new MemoryStream())
            {
                var pdfDocument = new Document(PageSize.LETTER);
                var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
                pdfDocument.Open();
                using (var fw = new StringReader(html))
                {
                    XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
                }
                pdfDocument.Close();
                return memoryStream.ToArray();
            }
        }
    }
}
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

namespace Helpers
{
    public class PdfGenerator
    {
        public static byte[] GeneratePdfFromFragment(string htmlFragment)
        {
            var html = string.Format(@"
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment);
            return Generate(html);
        }

        public static byte[] GeneratePdfFromPage(string htmlPage)
        {
            return Generate(htmlPage);
        }

        private static byte[] Generate(string html)
        {
            using (var memoryStream = new MemoryStream())
            {
                var pdfDocument = new Document(PageSize.LETTER);
                var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
                pdfDocument.Open();
                using (var fw = new StringReader(html))
                {
                    XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
                }
                pdfDocument.Close();
                return memoryStream.ToArray();
            }
        }
    }
}
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml

Namespace Helpers
	Public Class PdfGenerator
		Public Shared Function GeneratePdfFromFragment(ByVal htmlFragment As String) As Byte()
			Dim html = String.Format("
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment)
			Return Generate(html)
		End Function

		Public Shared Function GeneratePdfFromPage(ByVal htmlPage As String) As Byte()
			Return Generate(htmlPage)
		End Function

		Private Shared Function Generate(ByVal html As String) As Byte()
			Using memoryStream As New MemoryStream()
				Dim pdfDocument = New Document(PageSize.LETTER)
				Dim pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream)
				pdfDocument.Open()
				Using fw = New StringReader(html)
					XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw)
				End Using
				pdfDocument.Close()
				Return memoryStream.ToArray()
			End Using
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel
  1. GeneratePdfFromFragment: toma un fragmento HTML (como un documento HTML parcial) y lo convierte en una estructura HTML completa envolviéndolo en un formato básico.<html> y plantilla. Luego llama al método interno Generate.
  2. GeneratePdfFromPage: acepta una página HTML completa y llama directamente al método Generate .
  3. Generar: este método maneja la conversión de HTML a PDF.
    • Inicializa un MemoryStream para contener el PDF generado en memoria.
    • Crea un objeto Document de iTextSharp con páginas de tamaño carta.
    • El XMLWorkerHelper analiza el contenido HTML y lo escribe en el documento PDF usando el StringReader proporcionado.

Ventajas

  • Altamente personalizable con un conjunto de características ricas.
  • Documentación extensa y soporte comunitario.

Contras

  • iTextSharp (que es gratuito para uso personal pero requiere una licencia comercial para proyectos a gran escala) puede tener limitaciones manejando CSS o JavaScript complejos.
  • XMLWorker (que se usa aquí) es una herramienta obsoleta de iTextSharp para analizar HTML/CSS. iText7 (la versión más nueva de iText) utiliza un analizador HTML más robusto, pdfHTML, que podría brindar mejor soporte para estándares web modernos.
  • Curva de aprendizaje más pronunciada para principiantes.

3. PDFsharp

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 3

PDFSharp es una biblioteca .NET PDF ligera y de código abierto ideal para tareas básicas de creación de PDF. Si su aplicación requiere solo operaciones simples como agregar texto, imágenes o tablas, PDFSharp es una opción fácil de usar para generar documentos PDF en C#. Carece de características avanzadas como la conversión de HTML a PDF, pero brilla por su simplicidad para generar archivos PDF de pequeño a mediano tamaño en C#.

Características clave

  • Creación básica de PDF: API simple y fácil de usar para dibujar texto y gráficos. Ideal para crear documentos sencillos.
  • Manipulación de documentos: fusione y modifique archivos PDF existentes con facilidad, lo que permite flexibilidad en la gestión de documentos.
  • Soporte para dibujos y gráficos: PDFsharp proporciona un conjunto de herramientas para dibujar en páginas PDF, incluidas líneas, rectángulos y otros gráficos vectoriales. También soporta la inserción de imágenes en sus PDFs.
  • Gratis y de código abierto: PDFsharp es completamente gratuito para uso comercial y no comercial, lo que lo convierte en una opción atractiva para pequeñas empresas y desarrolladores que trabajan en proyectos de código abierto.

Ejemplo de código

using PdfSharp.Pdf;
using PdfSharp.Drawing;

class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        document.Info.Title = "Created with PdfSharp";

        // Add a page to the document
        PdfPage page = document.AddPage();

        // Create an XGraphics object to draw on the page
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Set a font to use for drawing text
        XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

        // Draw the text on the PDF page
        gfx.DrawString("Hello, World!", font, XBrushes.Black, 
                       new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);

        // Save the document to disk
        document.Save("Generated.pdf");
    }
}
using PdfSharp.Pdf;
using PdfSharp.Drawing;

class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        document.Info.Title = "Created with PdfSharp";

        // Add a page to the document
        PdfPage page = document.AddPage();

        // Create an XGraphics object to draw on the page
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Set a font to use for drawing text
        XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

        // Draw the text on the PDF page
        gfx.DrawString("Hello, World!", font, XBrushes.Black, 
                       new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);

        // Save the document to disk
        document.Save("Generated.pdf");
    }
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing

Friend Class Program
	Shared Sub Main()
		' Create a new PDF document
		Dim document As New PdfDocument()
		document.Info.Title = "Created with PdfSharp"

		' Add a page to the document
		Dim page As PdfPage = document.AddPage()

		' Create an XGraphics object to draw on the page
		Dim gfx As XGraphics = XGraphics.FromPdfPage(page)

		' Set a font to use for drawing text
		Dim font As New XFont("Verdana", 20, XFontStyle.Bold)

		' Draw the text on the PDF page
		gfx.DrawString("Hello, World!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)

		' Save the document to disk
		document.Save("Generated.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel
  • PdfDocument: Representa el documento PDF completo. Puede agregar páginas, configurar metadatos y manipular el documento.
  • PdfPage: Representa una sola página dentro del documento. Nuevas páginas se añaden usando el método AddPage.
  • XGraphics: se utiliza para dibujar texto, imágenes y formas en una página específica. Es similar a GDI+ en .NET.
  • XFont: especifica la fuente y el estilo para la representación del texto. En este ejemplo, se utiliza "Verdana" con estilo en negrita.
  • DrawString: dibuja la cadena especificada en la posición definida dentro del documento.

Ventajas

  • Gratis y de código abierto sin restricciones de licencia.
  • Simple y ligero, lo que facilita comenzar con la generación básica de PDF.
  • Funciona bien para proyectos que no requieren características complejas.

Contras

  • Funcionalidad limitada en comparación con otras bibliotecas.
  • Sin soporte nativo para convertir HTML a PDF.

4. Biblioteca PDF Syncfusion

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 4

Syncfusion PDF Library es una herramienta de alto rendimiento y completa diseñada para empresas que necesitan trabajar con PDFs en una amplia gama de aplicaciones. Es parte de la suite Syncfusion más amplia, que ofrece bibliotecas para una variedad de formatos y plataformas. La biblioteca PDF se destaca por su amplio conjunto de características que van más allá de la simple creación de documentos y permiten la manipulación detallada, incluyendo el relleno de formularios, las firmas digitales y la seguridad de documentos.

Características clave

  • API de PDF integral: capaz de generar PDF altamente personalizados, incluidos aquellos con diseños complejos, fuentes integradas e imágenes de alta resolución. Proporciona control detallado sobre todos los aspectos de la creación de PDF, desde el formato de la página hasta opciones de diseño avanzadas.
  • Procesamiento de formularios: la biblioteca se destaca en la creación, el llenado y la extracción de datos de formularios PDF interactivos (AcroForms). Útil para crear PDFs rellenables para entrada de usuarios, automatización de entradas de datos o procesamiento de formularios llenos.
  • Firmas digitales y cifrado: ofrece funciones de seguridad sólidas, incluida la capacidad de cifrar documentos PDF, agregar protección con contraseña y aplicar firmas digitales. Esencial para industrias como la salud y servicios legales que requieren autenticidad y seguridad de documentos.

Ejemplo de código

using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;

class Program
{
    static void Main()
    {
        // Create a new PDF document.
        PdfDocument document = new PdfDocument();

        // Add a page to the document.
        PdfPage page = document.Pages.Add();

        // Create PDF graphics for the page.
        PdfGraphics graphics = page.Graphics;

        // Set the standard font.
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);

        // Draw the text.
        graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));

        // Save the document.
        document.Save("Output.pdf");

        // Close the document.
        document.Close(true);
    }
}
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;

class Program
{
    static void Main()
    {
        // Create a new PDF document.
        PdfDocument document = new PdfDocument();

        // Add a page to the document.
        PdfPage page = document.Pages.Add();

        // Create PDF graphics for the page.
        PdfGraphics graphics = page.Graphics;

        // Set the standard font.
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);

        // Draw the text.
        graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));

        // Save the document.
        document.Save("Output.pdf");

        // Close the document.
        document.Close(true);
    }
}
Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics

Friend Class Program
	Shared Sub Main()
		' Create a new PDF document.
		Dim document As New PdfDocument()

		' Add a page to the document.
		Dim page As PdfPage = document.Pages.Add()

		' Create PDF graphics for the page.
		Dim graphics As PdfGraphics = page.Graphics

		' Set the standard font.
		Dim font As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 20)

		' Draw the text.
		graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, New PointF(0, 0))

		' Save the document.
		document.Save("Output.pdf")

		' Close the document.
		document.Close(True)
	End Sub
End Class
$vbLabelText   $csharpLabel
  • PdfDocument: Representa el documento PDF. Puede agregar páginas, configurar propiedades y manipular su contenido.
  • PdfPage: Representa una página dentro del documento PDF.
  • PdfFont: define la fuente para representar el texto. En este caso, se utiliza una fuente estándar Helvetica.
  • DrawString: dibuja la cadena especificada en la página PDF en las coordenadas dadas.

Ventajas

  • Conjunto de características ricas, adecuado para crear PDFs complejos.
  • El soporte profesional y la documentación lo hacen ideal para aplicaciones a gran escala.
  • Soporta capacidades avanzadas de PDF como el relleno de formularios, encriptación y anotaciones.

Contras

  • Las tarifas de licencia son relativamente altas para uso comercial.
  • API compleja, que puede requerir tiempo para dominar.

5. PDFShift (herramienta en línea)

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 5

PDFShift es un servicio basado en la nube diseñado para convertir HTML en archivos PDF. Se integra suavemente con aplicaciones C# a través de su API, permitiéndole convertir páginas HTML generadas dinámicamente en PDFs de calidad profesional. PDFShift es particularmente útil para desarrolladores web que desean generar documentos PDF a pedido a partir de contenido HTML, como facturas o informes. Dado que PDFShift opera completamente a través de su API REST, puede enviar solo unas pocas líneas de HTML al servicio y recibir un archivo PDF descargable en retorno. Es una solución simple y escalable para la generación de archivos PDF basada en web.

Características clave

  • Conversión de HTML a PDF: PDFShift se destaca en la conversión de documentos HTML en PDF de alta calidad. Maneja estilos CSS complejos, JavaScript y diseños de diseño responsive, asegurando que su página web se vea exactamente igual en formato PDF.
  • Integración API: La API de PDFShift está diseñada para una integración perfecta en aplicaciones web. Es sencilla de usar: simplemente envíe una solicitud HTTP POST con el contenido HTML, y el servicio devuelve un documento PDF.
  • Opciones de personalización: permite personalizar el PDF generado, incluida la configuración del tamaño de página, la orientación, los márgenes y los encabezados/pies de página. También puede agregar contenido dinámico a los encabezados y pies de página, como números de página o metadatos del documento.

Cómo funciona

  • Enviar una solicitud POST con el contenido HTML al punto final de la API PDFShift.
  • Recibir el PDF generado en respuesta, listo para descargar o guardar.

Código de ejemplo

using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
            var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
            var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Using client As New HttpClient()
			Dim htmlContent As String = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>"
			Dim content = New StringContent(htmlContent, Encoding.UTF8, "application/json")

			Dim response As HttpResponseMessage = Await client.PostAsync("https://api.pdfshift.io/v3/convert", content)

			Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
			System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel
  • HttpClient: envía el contenido HTML como una solicitud POST a la API PDFShift.
  • PostAsync: envía la solicitud a la API, que procesa el HTML y devuelve el PDF.
  • ReadAsByteArrayAsync: lee la respuesta PDF como una matriz de bytes, que luego se puede guardar como un archivo.

Ventajas

  • API simple con configuración mínima.
  • Ideal para aplicaciones web que requieren conversión dinámica de HTML a PDF.
  • No hay necesidad de gestionar bibliotecas o servidores de PDF.

Contras

  • Limitado a la conversión de HTML a PDF; - No soporta características más complejas de PDF.
  • Requiere una conexión a Internet e incurre en costos después de umbral de uso.

6. DocRaptor (herramienta en línea)

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 6

DocRaptor es otro servicio de generación de PDF basado en API potente que convierte HTML y CSS en PDFs de alta calidad. Es conocido por su excelente renderizado de documentos HTML, particularmente en el manejo de estilos CSS complejos, consultas de medios y fuentes web. Esto hace que DocRaptor sea una gran elección para generar documentos de aspecto profesional como informes, facturas y eBooks, directamente de plantillas HTML.

Características clave

  • Compatibilidad con HTML y CSS: convierte documentos HTML con estilos CSS complejos, incluidas consultas de medios y fuentes.
  • Integración API: API REST para una integración perfecta en aplicaciones web.
  • Encabezados/pies de página personalizados: agregue encabezados y pies de página dinámicos, incluidos números de página y formato personalizado.
  • Seguridad PDF: admite cifrado y protección con contraseña.

Cómo funciona

  • Enviar una solicitud POST a la API DocRaptor con contenido HTML.
  • Personalizar la salida del PDF con parámetros para tamaño de página, márgenes, encabezados y pies de página.
  • Recibir el PDF generado en respuesta.

Código de ejemplo

using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string apiKey = "YOUR_API_KEY";
            string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
            string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
            var content = new StringContent(jsonData, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string apiKey = "YOUR_API_KEY";
            string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
            string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
            var content = new StringContent(jsonData, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Using client As New HttpClient()
			Dim apiKey As String = "YOUR_API_KEY"
			Dim htmlContent As String = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>"
			Dim jsonData As String = $"{{""test"": true, ""document_content"": ""{htmlContent}"", ""name"": ""Generated.pdf"", ""document_type"": ""pdf""}}"
			Dim content = New StringContent(jsonData, Encoding.UTF8, "application/json")

			Dim response As HttpResponseMessage = Await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content)

			Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
			System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel
  • Clave API: debe proporcionar una clave API para la autenticación al utilizar DocRaptor. Reemplace "YOUR_API_KEY" con su clave real.
  • JsonData: esta cadena JSON contiene el contenido HTML, el nombre del documento y el tipo (PDF en este caso).
  • PostAsync: envía el contenido HTML y los parámetros a la API de DocRaptor para la generación de PDF.

Ventajas

  • Renderizado de alta calidad con soporte completo para HTML, CSS y JavaScript.
  • Opciones avanzadas de personalización para el diseño y seguridad de documentos.
  • No hay necesidad de mantener bibliotecas o infraestructuras de generación de PDF.

Contras

  • Servicio de pago después de superar un límite de uso gratuito.
  • Dependiente de la conectividad a Internet.

7. Herramientas en línea libres de código

Si no desea escribir código o necesita una solución rápida para generar PDFs, varias herramientas en línea le permiten crear PDFs rápida y fácilmente. Aquí hay algunas opciones notables:

7.1. PDF pequeño

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 7

Smallpdf es una plataforma en línea que ofrece una variedad de herramientas relacionadas con PDF, incluyendo la capacidad de crear PDFs a partir de una amplia gama de formatos de archivo. Está diseñada para usuarios que desean una interfaz de arrastrar y soltar simple sin la necesidad de escribir código. Smallpdf es ampliamente utilizado para conversiones rápidas de archivos, como convertir documentos de Word, hojas de Excel o imágenes en PDFs. También proporciona herramientas para fusionar, comprimir y dividir PDFs, convirtiéndola en una herramienta versátil para tareas básicas en PDF.

Características clave

  • Conversión de archivos: admite la conversión de archivos de Word, Excel, PowerPoint y de imagen (JPG, PNG) a PDF. Esto lo hace ideal para usuarios que necesitan crear PDFs a partir de una variedad de tipos de documentos rápidamente.
  • Fusionar y dividir archivos PDF: ofrece una interfaz sencilla para fusionar varios archivos PDF en un solo archivo o dividir un PDF en páginas individuales.
  • Integración de almacenamiento en la nube: puede cargar archivos fácilmente desde Google Drive o Dropbox y guardar los PDF convertidos en estas plataformas, lo que agiliza la administración de archivos.
  • Herramientas de edición de PDF: proporciona herramientas básicas de edición de PDF para editar cualquier documento PDF existente, como agregar anotaciones, completar formularios y firmar documentos digitalmente.

Ventajas

  • Muy fácil de usar para no desarrolladores.
  • Gratis para uso básico con opciones para actualizar a más funcionalidades.
  • Ofrece una amplia variedad de herramientas relacionadas con PDF como fusionar, dividir y comprimir PDFs.

Contras

  • Personalización limitada en comparación con soluciones basadas en código.
  • El nivel gratuito puede tener restricciones de funciones.

7.2. PDFescape

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 8

PDFescape es un editor de PDF basado en la web fácil de usar que permite a los usuarios crear, editar y ver PDFs sin la necesidad de instalar ningún software. Es una gran herramienta para aquellos que necesitan realizar ediciones rápidas a PDFs, como llenar formularios, agregar anotaciones de texto o insertar imágenes. PDFescape también ofrece herramientas para crear nuevos PDFs desde cero, convirtiéndola en una opción flexible para la creación básica de documentos.

Características clave

  • Llenado y edición de formularios: Se destaca en el manejo de formularios PDF. Los usuarios pueden fácilmente llenar formularios o editar campos existentes en documentos PDF, útil para contratos, solicitudes y otros formularios.
  • Creación básica de PDF: ofrece herramientas para agregar texto, formas, imágenes y campos de formulario. Útil para crear documentos simples como cartas o formularios.
  • Anotaciones y comentarios: agregue comentarios, notas adhesivas y otras anotaciones a archivos PDF existentes, lo que convierte a PDFescape en una excelente herramienta para la revisión y colaboración de documentos.
  • No requiere instalación: funciona completamente en su navegador, por lo que no es necesario instalar ningún software. Esto lo hace ideal para usuarios que necesitan acceso rápido a herramientas PDF en movimiento.

Ventajas

  • Simple de usar para usuarios no técnicos.
  • Nivel gratuito para la creación y edición básica de PDFs.
  • Adecuado para tareas menores de edición de PDFs.

Contras

  • Carece de características avanzadas para la creación compleja de PDFs.
  • Opciones de diseño y formato limitadas.

7.3. PDF Candy

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 9

PDF Candy es un conjunto de herramientas PDF en línea gratuitas que cubre una amplia variedad de tareas relacionadas con PDF, desde conversión de archivos hasta edición. Es una excelente opción para usuarios que necesitan realizar operaciones rápidas en PDF sin registrarse para una cuenta o instalar software. PDF Candy soporta convertir múltiples tipos de archivos, como documentos de Word, imágenes y archivos de texto, en PDFs. También proporciona herramientas para fusionar, dividir y comprimir PDFs.

Características clave

  • Amplia gama de opciones de conversión: puede convertir múltiples formatos de archivo, incluidos documentos de Word, imágenes y archivos de texto, en PDF. Esto lo hace una herramienta flexible para manejar diferentes tipos de contenido.
  • Fusionar y dividir archivos PDF: permite a los usuarios fusionar varios archivos PDF en uno o dividir archivos PDF grandes en archivos más pequeños y manejables.
  • Privacidad de archivos: elimina automáticamente los archivos de sus servidores después de un breve período, lo que garantiza que sus documentos permanezcan privados.
  • Uso gratuito: la mayoría de las herramientas son gratuitas y no requieren registro, lo que las hace accesibles para un público amplio. Sin embargo, también ofrece una versión premium con características más avanzadas para aquellos que necesitan un uso más frecuente o conversiones de archivos de mayor tamaño.

Ventajas

  • Fácil de usar y completamente gratuito para la mayoría de los usuarios.
  • Soporta una variedad de tipos de archivos para conversión a PDF.
  • No se requiere registro de cuenta para uso básico.

Contras

  • Funciones limitadas de personalización avanzada de PDF.
  • Algunas herramientas pueden tener restricciones en el tamaño del archivo o la complejidad de la conversión.

Conclusión

Comparación de 7 Libros de C# para Generar PDF (Herramientas Gratuitas y de Pago): Figura 10

Elegir la herramienta adecuada para generar archivos PDF en C# depende de sus necesidades. Si necesita generar documentos PDF a partir de contenido HTML, IronPDF y PDFShift son excelentes opciones. iTextSharp y Syncfusion ofrecen amplias opciones de personalización y control sobre la estructura del documento para proyectos más complejos. Para soluciones más simples y de código abierto, PDFsharp es una elección confiable para modificar archivos PDF o crear PDFs básicos. Finalmente, para no desarrolladores, Smallpdf, PDFescape y PDF Candy proporcionan opciones fáciles y sin código para trabajar con archivos PDF.

Para aquellos interesados en probar [IronPDF](trial license), haciéndolo una opción excelente para desarrolladores que deseen probar su conversión de HTML a PDF y funciones de manipulación de PDF antes de comprometerse a una licencia de pago. La prueba permite explorar sus características premium, como la generación de archivos PDF de alta calidad, opciones de seguridad y modificación de documentos PDF existentes, brindándole una experiencia práctica con las capacidades de la herramienta. Si su proyecto requiere conversiones frecuentes de HTML a PDF o edición compleja de PDFs, la prueba gratuita de IronPDF es una excelente manera de ver si se adapta a sus necesidades.

Al evaluar las características específicas de cada herramienta y el alcance de su proyecto, puede elegir la mejor solución para generar archivos PDF de manera eficiente en C#.

Preguntas Frecuentes

¿Cómo puedo convertir HTML a PDF en C#?

Puedes usar el método RenderHtmlAsPdf de IronPDF para convertir cadenas de HTML en PDFs. También puedes convertir archivos HTML a PDFs usando RenderHtmlFileAsPdf.

¿Cuáles son las diferencias entre las bibliotecas PDF de C# gratuitas y de pago?

Las bibliotecas gratuitas como PDFsharp son excelentes para la creación y manipulación básica de PDFs, mientras que las bibliotecas de pago como IronPDF ofrecen características avanzadas como conversión de HTML a PDF, procesamiento de formularios y seguridad mejorada.

¿Cuál es la mejor biblioteca de código abierto para tareas básicas de PDF en C#?

PDFsharp es una biblioteca PDF ligera y de código abierto para .NET ideal para tareas básicas de creación de PDFs. Es gratuita tanto para uso comercial como no comercial.

¿Cómo soporta iTextSharp la creación de documentos PDF seguros?

iTextSharp ofrece extensas opciones de personalización para crear documentos PDF seguros, incluyendo soporte para firmas digitales y encriptación, lo que lo hace adecuado para industrias que requieren manejo seguro de documentos.

¿Puedo usar herramientas en línea para la conversión de HTML a PDF en aplicaciones C#?

Sí, herramientas en línea como PDFShift y DocRaptor ofrecen conversión de HTML a PDF basada en API, lo cual es ideal para aplicaciones web que necesitan generación dinámica de PDFs.

¿Cuáles son las ventajas de usar una biblioteca con un motor de renderizado basado en Chromium para la generación de PDFs?

Bibliotecas como IronPDF, que utilizan un motor de renderizado basado en Chromium, ofrecen conversión de HTML a PDF de alta calidad con soporte para estilización compleja y JavaScript.

¿Cómo beneficia la biblioteca PDF de Syncfusion a las aplicaciones empresariales?

La biblioteca PDF de Syncfusion ofrece características completas para aplicaciones empresariales, incluyendo procesamiento de formularios, firmas digitales y encriptación, lo que la hace muy adecuada para requisitos profesionales complejos.

¿IronPDF es compatible con la próxima versión de .NET 10?

Sí, IronPDF es compatible con .NET 10 de fábrica. Está catalogado como compatible con .NET 10 junto con las versiones 9, 8, 7, 6, Core, Standard y Framework, y no requiere soluciones alternativas especiales. (ironpdf.com)

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más