USO DE IRONPDF

Comparación de 7 bibliotecas para generar PDF en C# (Herramientas gratuitas y de pago)

Publicado en 16 de diciembre, 2024
Compartir:

La funcionalidad de generación de PDF en C# es fundamental para muchas aplicaciones modernas, desde la creación de informes hasta sistemas de facturación. En este artículo, exploraremos seis formas populares de generarPDFarchivos utilizando C#, destacando tanto las bibliotecas basadas en código, comoIronPDF, y API's y herramientas en línea. Ya sea que necesites generar un archivo PDF dinámicamente en una aplicación web o simplemente crear archivos PDF a partir de documentos existentes, estas herramientas te respaldan.

1. IronPDF

Imagen rota Añadir desde Pixabay, seleccionar de tus archivos o arrastrar y soltar una imagen aquí.

IronPDFes una biblioteca premium de .NET para 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, lo que lo convierte en una opción perfecta para aplicaciones web que deseen convertir páginas HTML o informes basados en la web a archivos PDF en C#. La herramienta es conocida por su manejo robusto de documentos PDF existentes y ofrece funciones para editar, unir o dividir PDFs.

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

Características principales

  • Conversión de HTML a PDF: IronPDF se destaca en la conversión de páginas HTML complejas, incluyendo soporte para 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ías en un navegador web.
  • Manipulación de PDF: IronPDF te permite fusionar, dividir y modificar fácilmente documentos PDF existentes.
  • Opciones avanzadas de estilo: IronPDF admite hojas de estilo externas, fuentes personalizadas y JavaScript, lo que te permite crear documentos altamente estilizados. Es perfecto para facturas, informes y contenido web.
  • Características de seguridad: IronPDF ofrece funciones para agregar protección con contraseña, firmas digitales y establecer 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 convierte en una buena opción para aplicaciones que necesitan entrada de usuario en formato PDF.
  • NuGet Package Manager: Instala y gestiona 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>";
        ChromePdfRenderer renderer = new ChromePdfRenderer(); // Create an instance of ChromePdfRenderer
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // Render the HTML as a PDF document
        pdf.SaveAs("Generated.pdf"); // Save the PDF to a specified file
    }
}
using IronPdf;
class Program
{
    static void Main()
    {
        string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";
        ChromePdfRenderer renderer = new ChromePdfRenderer(); // Create an instance of ChromePdfRenderer
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // Render the HTML as a PDF document
        pdf.SaveAs("Generated.pdf"); // Save the PDF to a specified file
    }
}
Imports IronPdf
Friend Class Program
	Shared Sub Main()
		Dim html As String = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>"
		Dim renderer As New ChromePdfRenderer() ' Create an instance of ChromePdfRenderer
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html) ' Render the HTML as a PDF document
		pdf.SaveAs("Generated.pdf") ' Save the PDF to a specified file
	End Sub
End Class
VB   C#
  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 deseas convertir a PDF.

  3. Instancia del Renderizador: new ChromePdfRenderer();** crea una instancia de la clase HtmlToPdf, 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("Generated.pdf");** guarda el PDF generado en la ruta de archivo especificada.

Pros

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

Contras

  • Las tarifas de licencia pueden ser una consideración para proyectos más grandes.
  • Es posible que las funciones más avanzadas requieran un aprendizaje más profundo.

2. iTextSharp

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

iTextSharp es una biblioteca de PDF para .NET bien establecida que ofrece una amplia funcionalidad para crear y editar archivos PDF. Se utiliza ampliamente en industrias como las de finanzas y legal, donde los documentos deben personalizarse y asegurarse. iTextSharp te 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 principales

  • Capacidades completas de creación de PDF: iTextSharp facilita la creación de un archivo PDF en C# desde cero, permitiendo a los desarrolladores añadir texto, imágenes, tablas y gráficos vectoriales. Proporciona un control completo sobre el diseño del documento, incluida 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 llenarlos de forma programada, una característica útil en flujos de trabajo de generación automática de documentos.
  • Conversión de XML a PDF: iTextSharp tiene un soporte robusto para convertir datos XML a PDF utilizando XFA(Arquitectura de Formularios XML). Esto es especialmente valioso en industrias donde los datos XML necesitan ser formateados en formularios estándar o informes.
  • Seguridad de PDF: iTextSharp incluye funciones avanzadas como la adición de cifrado, firmas digitales y marcas de agua para garantizar la autenticidad del documento y proteger los 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 resulta útil para el post-procesamiento de documentos o la generación de informes resumidos a partir de archivos PDF complejos.

Ejemplo de código

using System;
using System.Collections.Generic;
using System.Data.Entity.Core.Mapping;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
using Voodoo;
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();
                    fw.Close();
                }
                return memoryStream.ToArray();
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Data.Entity.Core.Mapping;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
using Voodoo;
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();
                    fw.Close();
                }
                return memoryStream.ToArray();
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Data.Entity.Core.Mapping
Imports System.IO
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml
Imports Voodoo
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)
					pdfDocument.Close()
					fw.Close()
				End Using
				Return memoryStream.ToArray()
			End Using
		End Function
	End Class
End Namespace
VB   C#
  1. GeneratePdfFromFragment: Toma un fragmento HTML(como un documento HTML parcial) y lo convierte en una estructura HTML completa envolviéndolo en una base.

    yplantilla. Luego llama al método interno generate.

  2. GeneratePdfFromPage: Acepta una página HTML completa y llama directamente al método de generación.

    1. generate: Este método maneja la conversión de HTML a PDF.

      • Inicializa un MemoryStream para almacenar el PDF generado en la memoria.

      • Crea un objeto Document de iTextSharp con páginas tamaño Carta.
    • El XMLWorkerHelper analiza el contenido HTML y lo escribe en el documento PDF utilizando el StringReader proporcionado.

    4.

Pros

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

Contras

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

3. PDFsharp

C# Generar PDF Comparativa de 7 Bibliotecas (Herramientas Gratuitas y de Pago): Figura 3

PDFSharp es una biblioteca ligera de .NET de código abierto ideal para tareas básicas de creación de PDF. Si su aplicación solo requiere 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 funciones avanzadas como la conversión de HTML a PDF, pero destaca por su simplicidad para generar archivos PDF de tamaño pequeño a mediano en C#.

Características principales

  • 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: Fusiona y modifica PDFs existentes con facilidad, permitiendo flexibilidad en la gestión de documentos.
  • Soporte para Dibujo y Gráficos: PDFsharp proporciona un conjunto de herramientas para dibujar en páginas PDF, incluyendo líneas, rectángulos y otros gráficos vectoriales. También admite la incrustación de imágenes en tus archivos PDF.
  • Libre 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
VB   C#
  • PdfDocument: Representa el documento PDF completo. Puede añadir páginas, establecer metadatos y manipular el documento.
  • PdfPage: Representa una sola página dentro del documento. Nuevas páginas se añaden utilizando 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 de texto. En este ejemplo, se utiliza "Verdana" con estilo en negrita.
  • DrawString: Dibuja la cadena especificada en la posición definida dentro del documento.

Pros

  • Gratis y de código abierto sin restricciones de licencia.
  • Simple y ligero, facilitando el inicio 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.
  • No hay soporte nativo para convertir HTML a PDF.

4. Biblioteca PDF de Syncfusion

Comparación de 7 bibliotecas para generar PDF en C# (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. Forma parte de la suite más amplia de Syncfusion, que ofrece bibliotecas para una variedad de formatos y plataformas. La biblioteca PDF se destaca por su amplio conjunto de funciones que va más allá de la simple creación de documentos y permite una manipulación detallada, incluyendo el llenado de formularios, firmas digitales y seguridad de documentos.

Características principales

  • API integral de PDF: Syncfusion PDF es capaz de generar PDFs altamente personalizados, incluidos aquellos con diseños complejos, fuentes incrustadas e imágenes de alta resolución. Proporciona un control detallado sobre todos los aspectos de la creación de PDF, desde el formato de página hasta las opciones avanzadas de diseño.
  • Procesamiento de Formularios: La biblioteca sobresale en crear, completar y extraer datos de formularios PDF interactivos.(AcroForms). Esto es útil para crear PDFs rellenables para la entrada de usuario, automatizar la entrada de datos o procesar formularios llenados.
  • Firmas digitales y cifrado: Syncfusion ofrece características de seguridad robustas, incluyendo la capacidad de cifrar documentos PDF, agregar protección con contraseña y aplicar firmas digitales. Estas características son cruciales para industrias como la atención médica y los servicios legales que requieren autenticidad y seguridad en los documentos. Ejemplo de código
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Grid;
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.Parsing;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Grid;
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.Parsing
Imports Syncfusion.Pdf.Graphics
Imports Syncfusion.Pdf.Grid
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
VB   C#
  • PdfDocument: Representa el documento PDF. Puedes añadir páginas, establecer propiedades y manipular su contenido.
  • PdfPage: Representa una página dentro del documento PDF.
  • PdfFont: Define la fuente para renderizar texto. En este caso, se utiliza una fuente Helvetica estándar.
  • DrawString: Dibuja la cadena especificada en la página PDF en las coordenadas dadas.

Pros

  • Conjunto de características rico, adecuado para crear PDFs complejos.
  • El soporte profesional y la documentación lo hacen ideal para aplicaciones a gran escala.
  • Admite capacidades avanzadas de PDF como el llenado de formularios, la encriptación y las 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)

C# Generar PDF Comparación de 7 Bibliotecas (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 sin problemas con aplicaciones C# a través de su API, permitiendo convertir páginas web HTML generadas dinámicamente en PDF de calidad profesional. PDFShift es particularmente útil para los desarrolladores web que desean generar documentos PDF a demanda a partir de contenido HTML, como facturas o informes. Dado que PDFShift opera completamente a través de su API REST, puedes enviar solo unas pocas líneas de HTML al servicio y recibir un archivo PDF descargable a cambio. Es una solución simple y escalable para la generación de archivos PDF basada en la web.

Características principales

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

Cómo funciona

  • Envía una solicitud POST con contenido HTML al endpoint de la API de PDFShift.
  • Reciba el PDF generado como 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
VB   C#
  • HttpClient: Envía el contenido HTML como una solicitud POST a la API de PDFShift.
  • PostAsync: Envía la solicitud a la API, que procesa el HTML y devuelve el PDF.
  • ReadAsByteArrayAsync: Lee la respuesta PDF como un array de bytes, que luego se puede guardar como un archivo.

Pros

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

Contras

  • Limitado a la conversión de HTML a PDF; no admite funciones PDF más complejas.
  • Requiere una conexión a internet e incurre en costos después de un determinado umbral de uso.

6. DocRaptor(Herramienta en línea)

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

DocRaptor es otro servicio potente de generación de PDFs basado en API que convierte HTML y CSS en PDFs de alta calidad. Se le conoce 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 excelente opción para generar documentos de apariencia profesional como informes, facturas y libros electrónicos, directamente desde plantillas HTML.

Características principales

  • Soporte para HTML y CSS: Convierte documentos HTML con estilos CSS complejos, incluyendo consultas de medios y fuentes.
  • Integración de API: API REST para una integración fluida en aplicaciones web.
  • Encabezados/Pies de página personalizados: Agrega encabezados y pies de página dinámicos, incluyendo números de página y formato personalizado.
  • Seguridad de PDF: Soporta encriptación y protección con contraseña.

Cómo funciona

  • Envíe una solicitud POST a la API de DocRaptor con contenido HTML.
  • Personalice la salida de PDF con parámetros para el tamaño de página, márgenes, encabezados y pies de página.
  • Reciba 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
VB   C#
  • Clave API: Debes proporcionar una clave API para la autenticación al usar 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.

Pros

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

Contras

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

7. Herramientas en línea sin código

Si no deseas programar o necesitas una solución rápida para generar PDFs, varias herramientas en línea permiten crear PDFs de manera rápida y sencilla. Aquí hay algunas opciones destacadas:

7.1. Smallpdf

Comparación de 7 bibliotecas de C# para generar PDF (Herramientas gratis 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 PDF a partir de una amplia gama de formatos de archivo. Está diseñado para usuarios que desean una interfaz simple de arrastrar y soltar sin necesidad de escribir código. Smallpdf se utiliza ampliamente para conversiones rápidas de archivos, como transformar documentos de Word, hojas de Excel o imágenes en PDFs. También ofrece herramientas para fusionar, comprimir y dividir PDFs, lo que lo convierte en una herramienta versátil para tareas básicas con PDFs.

Características principales

  • Conversión de archivos: Smallpdf admite la conversión de archivos de Word, Excel, PowerPoint e imágenes(JPG, PNG)en PDF. Esto lo hace ideal para usuarios que necesitan crear PDF a partir de una variedad de tipos de documentos rápidamente.
  • Combinación y División de PDFs: Smallpdf ofrece una interfaz sencilla para combinar múltiples PDFs en un solo archivo o dividir un PDF en páginas individuales.
  • Integración con almacenamiento en la nube: Puedes subir fácilmente archivos desde Google Drive o Dropbox y guardar los PDFs convertidos de nuevo en estas plataformas, optimizando la gestión de archivos.
  • Herramientas de edición de PDF: Además de la conversión, Smallpdf ofrece herramientas básicas de edición de PDF para editar cualquier documento PDF existente, como añadir anotaciones, completar formularios y firmar documentos digitalmente.

Pros

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

Contras

  • Personalización limitada en comparación con soluciones basadas en código.
  • La capa gratuita puede tener algunas restricciones de funcionalidades.

7.2. PDFescape

C# Generar PDF Comparación de 7 Bibliotecas (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 necesidad de instalar ningún software. Es una gran herramienta para aquellos que necesitan hacer ediciones rápidas en PDFs, como completar formularios, añadir anotaciones de texto o insertar imágenes. PDFescape también ofrece herramientas para crear nuevos PDFs desde cero, lo que lo convierte en una opción flexible para la creación básica de documentos.

Características principales

  • Relleno y Edición de Formularios: PDFescape sobresale en el manejo de formularios PDF. Los usuarios pueden completar fácilmente formularios o editar campos existentes en documentos PDF, lo cual es útil para contratos, solicitudes y otros formularios.
  • Creación básica de PDF: Para los usuarios que desean crear PDFs desde cero, PDFescape ofrece herramientas para añadir texto, formas, imágenes y campos de formulario. Esto es útil para crear documentos simples como cartas o formularios.
  • Anotaciones y Comentarios: Puedes añadir comentarios, notas adhesivas y otras anotaciones a los PDF existentes, lo que convierte a PDFescape en una gran herramienta para la revisión y colaboración de documentos.
  • No se requiere instalación: Como herramienta basada en la web, PDFescape funciona completamente en su navegador, por lo que no es necesario instalar ningún software. Esto lo hace ideal para los usuarios que necesitan acceso rápido a herramientas de PDF mientras están en movimiento.

Pros

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

Contras

  • Carece de funciones avanzadas para la creación de PDF complejos.
  • Opciones limitadas de diseño y formato.

7.3. PDF Candy

Comparación de 7 bibliotecas para generar PDF con C# (Herramientas gratuitas y de pago): Figura 9

PDF Candy es una suite de herramientas PDF en línea gratuitas que abarca una amplia gama de tareas relacionadas con PDF, desde la conversión de archivos hasta la edición. Es una excelente opción para usuarios que necesitan realizar operaciones rápidas con PDF sin registrarse para obtener una cuenta o instalar software. PDF Candy admite la conversión de varios tipos de archivos, como documentos de Word, imágenes y archivos de texto, en PDFs. También ofrece herramientas para combinar, dividir y comprimir PDFs.

Características principales

  • Amplia Gama de Opciones de Conversión: PDF Candy puede convertir múltiples formatos de archivo, incluidos documentos de Word, imágenes y archivos de texto, en PDFs. Esto lo convierte en una herramienta flexible para manejar diferentes tipos de contenido.
  • Unir y dividir PDFs: La plataforma permite a los usuarios unir múltiples PDFs en uno solo o dividir PDFs grandes en archivos más pequeños y manejables.
  • Privacidad de Archivos: PDF Candy borra automáticamente los archivos de sus servidores después de un corto período, asegurando que tus documentos permanezcan privados.
  • Gratis para usar: La mayoría de las herramientas en PDF Candy son gratuitas de usar sin necesidad de registrarse, 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 necesiten un uso más frecuente o conversiones de archivos más grandes.

Pros

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

Contras

  • Características limitadas de personalización avanzada de PDF.
  • Algunas herramientas pueden tener restricciones sobre el tamaño de archivo o la complejidad de la conversión.

Conclusión

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

Elegir la herramienta adecuada para generar archivos PDF en C# depende de tus necesidades. Si necesita generar documentos PDF a partir de contenido HTML, IronPDF y PDFShift son opciones excelentes. 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 sencillas y de código abierto, PDFsharp es una opción confiable para modificar archivos PDF o crear PDFs básicos. Finalmente, para los no desarrolladores, Smallpdf, PDFescape y PDF Candy ofrecen opciones fáciles y sin código para trabajar con archivos PDF.

Para aquellos interesados en probarIronPDF, lo que lo convierte en una excelente opción para que los desarrolladores prueben sus funciones de conversión de HTML a PDF y manipulación de PDF antes de comprometerse con una licencia de pago. La prueba le permite explorar sus características premium, como la generación de archivos PDF de alta calidad, opciones de seguridad y la modificación de documentos PDF existentes, ofrecié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 PDF, 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#.

SIGUIENTE >
Salto de página html2pdf fijado en C# (Tutorial para desarrolladores)

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,853,890 Ver licencias >