Saltar al pie de página
COMPARACIONES DE PRODUCTOS

`CraftMy`PDF vs IronPDF: ¿Qué biblioteca de generación de PDF para desarrolladores de C#?

IronPDF ofrece conversión de HTML a PDF con código primero, soporte completo de CSS/JavaScript y licencia perpetua desde $749, mientras que CraftMy PDF ofrece diseño de plantillas basado en la nube con integración JSON, pero requiere suscripciones continuas y dependencias de API.

CraftMyPDF ofrece un diseñador de plantillas de arrastrar y soltar basado en la nube con integración de datos JSON, mientras que IronPDF proporciona conversión de HTML a PDF con código primero y soporte completo de CSS/JavaScript para desarrolladores .NET que buscan control total sobre la generación de documentos.

PDF , o formato de documento portátil, es un formato de archivo desarrollado por Adobe para el intercambio de documentos. Conserva el formato, las fuentes y las imágenes en todos los dispositivos, lo que garantiza una apariencia uniforme. Los archivos PDF admiten funciones de seguridad , interactividad y compresión , lo que los hace ideales para compartir documentos de manera confiable.

Las bibliotecas PDF de C# permiten a los desarrolladores crear , modificar y extraer contenido de archivos PDF mediante programación. Estas herramientas admiten el manejo de formularios , las firmas digitales y la implementación multiplataforma . Al integrar bibliotecas PDF, los desarrolladores pueden agregar capacidades de generación de documentos directamente a sus aplicaciones y simplificar los flujos de trabajo para crear , editar y administrar archivos PDF .

Este artículo compara dos enfoques diferentes de generación de PDF: la biblioteca C# IronPDF y la API Craftmypdf . La comparación examina las características, proporciona ejemplos de código y analiza las opciones de licencia .

¿Qué es la solución base API CraftMyPDF ?

Página de inicio de CraftMyPDF que muestra una interfaz de edición de PDF con función de arrastrar y soltar, con una plantilla de lista de empaque editándose en tiempo real.

CraftMyPDF es una API basada en la nube para crear archivos PDF a través de plantillas. Proporciona un editor de arrastrar y soltar basado en web para diseñar plantillas reutilizables sin codificación. La plataforma genera archivos PDF fusionando estas plantillas con datos JSON, lo que admite la generación de contenido dinámico para documentos como facturas , informes y certificados.

¿Cuáles son las características principales de CraftMyPDF ?

  1. Editor de arrastrar y soltar: Diseñador de plantillas visual que no requiere conocimientos de codificación.

  2. Reutilización de plantillas: Diseñe una vez y úsela repetidamente con diferentes conjuntos de datos.

  3. Integración de datos JSON: fusiona datos dinámicos con plantillas a través de JSON.

  4. Formato y expresiones avanzados: formatee fechas, números y monedas de forma dinámica.

  5. Integraciones de API: la API REST admite Zapier, Make.com y aplicaciones personalizadas.

  6. Componentes rellenables: crea formularios interactivos con campos de texto y casillas de verificación.

  7. Seguridad y cumplimiento: acceso seguro a PDF con puntos finales de API regionales y cumplimiento del RGPD.

¿Qué es IronPDF?

IronPDF PDF Library for .NET Developers es una biblioteca PDF completa para aplicaciones .NET. Escrito en C#, genera archivos PDF con píxeles perfectos a partir de HTML , CSS , JavaScript e imágenes . IronPDF simplifica los flujos de trabajo de PDF al proporcionar amplias capacidades de creación, edición y gestión dentro de entornos .NET .

¿Cuáles son las características principales de IronPDF?

  1. Conversión de HTML a PDF: convierta HTML, CSS y JavaScript a PDF con una precisión de píxeles perfecta .

  2. URL a PDF: genera archivos PDF desde cualquier URL , conservando el contenido y el estilo adaptable .

  3. Imagen a PDF: Convierte JPG, PNG, GIF, BMP y SVG en documentos PDF con soporte TIFF de múltiples fotogramas .

  4. Relleno de formularios y extracción de datos: cree y rellene formularios PDF mediante programación con validación personalizada .

  5. Firmas digitales y seguridad: agregue firmas digitales , contraseñas y permisos con soporte HSM .

  6. Edición de PDF: agregar, copiar o eliminar páginas . Fusionar y dividir archivos PDF con capacidades de rotación de páginas .

  7. Anotaciones y archivos adjuntos: agregue notas adhesivas e incorpore archivos adjuntos con metadatos personalizados .

  8. Encabezados, pies de página y marcas de agua: aplique encabezados, pies de página y marcas de agua personalizados con plantillas HTML .

  9. Compatibilidad entre plataformas: funciona en Windows , macOS , Linux , Docker , Azure y AWS .

  10. Optimización del rendimiento: compatibilidad con subprocesos múltiples y asincrónicos para generación de gran volumen con procesamiento paralelo .

  11. Documentación completa: guías extensas , tutoriales y soporte técnico 24/5 .

  12. Sin dependencias externas: implementación de una sola DLL sin requisitos de software adicionales utilizando un motor de renderizado nativo .

¿Cómo creo una aplicación C# en Visual Studio?

Para crear una aplicación de consola C# es necesario tener Visual Studio instalado en la computadora. Siga estos pasos para configurar el proyecto:

¿Cómo abro Visual Studio?

Inicie Visual Studio desde el menú Inicio o el icono del escritorio.

¿Cómo creo un nuevo proyecto?

  1. Haga clic en "Crear un nuevo proyecto" en la página de inicio.
  2. Busque "Aplicación de consola" o selecciónela de la lista de plantillas.

¿Cómo elijo la plantilla del proyecto?

Seleccione "Aplicación de consola (.NET Core)" o "Aplicación de consola (.NET Framework)" según los requisitos. Para obtener compatibilidad con .NET MAUI , elija las plantillas MAUI adecuadas.

¿Cómo configuro mi proyecto?

  1. Nombre del proyecto: Ingrese el nombre del proyecto
  2. Ubicación: Elija el directorio de guardado
  3. Nombre de la solución: Generalmente coincide con el nombre del proyecto.
  4. Haga clic en "Crear" para continuar.

¿Cómo se instala IronPDF?

IronPDF ofrece tres métodos de instalación: Administrador de paquetes NuGet , Consola del administrador de paquetes y descarga directa. La biblioteca admite implementaciones de Windows , macOS , Linux y la nube.

¿Cómo uso el Administrador de paquetes NuGet?

En Visual Studio, haga clic con el botón derecho en "Referencias" o "Dependencias" en el Explorador de soluciones. Seleccione "Administrar paquetes NuGet", busque "IronPDF" y haga clic en "Instalar".

El Administrador de paquetes NuGet de Visual Studio muestra los resultados de búsqueda de IronPDF, con la versión 2024.5.2 del paquete IronPDF principal instalado y paquetes relacionados como IronPdf.Native.Chrome.Windows e IronPdf.Slim visibles.

¿Cómo uso la consola del Administrador de paquetes NuGet?

Abra Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes y ejecute:

Install-Package IronPdf

¿Cómo puedo descargar desde el sitio web de NuGet?

Visite el sitio web de NuGet , descargue el archivo del paquete y agréguelo como fuente de paquete en Visual Studio. Para implementaciones de Docker , utilice configuraciones de contenedor específicas.

Para obtener instrucciones detalladas, consulte la descripción general de la instalación y la configuración avanzada de NuGet .

¿Cómo uso CraftMyPDF ?

Para integrar CraftMyPDF , cree una cuenta, seleccione un plan y obtenga las credenciales de API.

¿Cómo creo una cuenta y selecciono el plan gratuito?

  1. Regístrate: Regístrate en el sitio web de CraftMyPDF
  2. Seleccione el plan gratuito: elija el nivel gratuito para desarrollo y pruebas
  3. Obtener la clave API: acceda a la clave API desde el panel de la cuenta

Panel de CraftMyPDF con detalles de la suscripción al plan gratuito, 6/50 créditos usados y registro de cambios recientes con nuevas funciones, como campos de firma y correcciones de errores.

¿Qué bibliotecas necesito instalar?

Instalar los paquetes System.Net.Http , RestSharp y Newtonsoft.Json :

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
$vbLabelText   $csharpLabel

Inicializar el cliente API:

var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
$vbLabelText   $csharpLabel

¿Cómo creo archivos PDF?

Ambas bibliotecas ofrecen diferentes enfoques para la generación de PDF. IronPDF utiliza renderizado HTML basado en código, mientras que CraftMyPDF utiliza plantillas visuales con enlace de datos. IronPDF también admite conversiones de Markdown a PDF y de XML a PDF .

¿Cómo creo archivos PDF con IronPDF?

¿Cómo convierto HTML a PDF?

Convierte cadenas HTML directamente a PDF con soporte completo de CSS y representación de JavaScript :

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
$vbLabelText   $csharpLabel

Captura de pantalla de un documento PDF generado por IronPDF con el encabezado "¡Hola, IronPDF!" y un texto de ejemplo que muestra la conversión de HTML a PDF.

Para obtener más ejemplos, visita la página de ejemplos de HTML a PDF . Los desarrolladores también pueden establecer márgenes personalizados , agregar saltos de página y configurar el tamaño del papel .

¿Cómo convierto una URL a PDF?

Convierte páginas web a archivos PDF conservando todo el estilo, incluido el contenido WebGL y el CSS adaptable :

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
$vbLabelText   $csharpLabel

Página de inicio de IronPDF con un ejemplo de código C# para la conversión de HTML a PDF usando ChromePdfRenderer en C#, con 9 229 207 descargas de NuGet y las características principales de la biblioteca.

Obtenga más información sobre la conversión de URL a PDF . Para páginas autenticadas, consulte Inicios de sesión en sitios web TLS y encabezados de solicitud HTTP .

¿Cómo convierto un archivo HTML a PDF?

Convierte archivos HTML locales a PDF con soporte para tipos de medios CSS y URL base :

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
$vbLabelText   $csharpLabel

Consulte la guía de conversión de archivos HTML a PDF para obtener más detalles. Para archivos ZIP HTML , IronPDF maneja la extracción automáticamente.

¿Cómo creo archivos PDF con la API CraftMyPDF ?

CraftMyPDF requiere crear primero plantillas y luego generar archivos PDF fusionando datos.

¿Cómo creo una plantilla?

  1. Inicia sesión en el Panel de Control: Accede a la cuenta CraftMyPDF
  2. Crear nueva plantilla: utilice el editor de arrastrar y soltar para diseñar
  3. Guardar plantilla: obtener el ID de plantilla para las llamadas API

Panel de gestión de plantillas de CraftMyPDF que muestra una plantilla de factura con herramientas de edición y tutoriales.

¿Cómo envío una solicitud para generar un PDF?

Genere archivos PDF enviando datos JSON a la plantilla:

using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
$vbLabelText   $csharpLabel

La consola de depuración de Visual Studio muestra la generación exitosa de PDF desde la API de CraftMyPDF con detalles de la respuesta JSON.

Salida PDF generada:

Factura de Tech Innovations Ltd. que incluye diversos servicios tecnológicos, como SEO, marketing digital, soporte técnico, aplicaciones web y alojamiento en la nube, por un total de 2907,00 € (descuento e impuestos).

¿Cómo puedo generar facturas profesionales con Bootstrap?

IronPDF renderiza marcos modernos sin dependencias externas. Este ejemplo de Bootstrap 5 demuestra la generación de facturas profesionales con diseño responsivo y CSS de impresión :

using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1 class='mb-0'>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3 class='mb-0'>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6 class='text-primary text-uppercase mb-2'>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6 class='text-primary text-uppercase mb-2'>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1 class='mb-0'>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3 class='mb-0'>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6 class='text-primary text-uppercase mb-2'>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6 class='text-primary text-uppercase mb-2'>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
$vbLabelText   $csharpLabel

Salida: un PDF de factura profesional con encabezados de degradado Bootstrap 5, tablas interactivas y resúmenes de cálculos. IronPDF renderiza con perfecta precisión todos los gradientes CSS, estilos de tablas y clases de utilidad: no se requieren llamadas a APIs externas, no se requieren plantillas, no se requiere conexión a Internet. A diferencia del enfoque en la nube de CraftMyPDF, IronPDF genera facturas instantáneamente en su servidor con control total.

¿Qué hace el código?

  1. Configurar RestClient : Inicializar el cliente con el punto final de la API CraftMyPDF
  2. Agregar encabezados: incluya la clave API y el tipo de contenido para la autenticación
  3. Preparar el cuerpo de la solicitud: crear un objeto JSON con datos de plantilla y opciones
  4. Enviar solicitud: ejecutar llamada API para generar PDF
  5. Gestionar respuesta: Descargar el PDF generado o mostrar el mensaje de error

¿Cuáles son las diferencias clave para los fundadores técnicos?

¿Cómo se comparan los enfoques basados en plantillas y los enfoques basados en código?

Basado en plantillas ( CraftMyPDF ):

  • Los miembros del equipo no técnicos pueden crear y modificar plantillas.
  • Las plantillas se gestionan de forma centralizada en el panel de control de la nube.
  • Los cambios en las plantillas no requieren la implementación de código
  • Limitado por restricciones de diseño de plantillas
  • Ideal para documentos estandarizados con diseños predecibles

Código primero (IronPDF):

  • Control total sobre el diseño del documento mediante HTML y CSS
  • La compatibilidad con JavaScript permite realizar gráficos y cálculos dinámicos .
  • Las plantillas son parte de la base del código con control de versiones.
  • Flexibilidad de diseño ilimitada con cualquier tecnología web
  • Ideal para documentos complejos y dinámicos que requieren lógica programática

Para las plantillas Razor , IronPDF proporciona soporte nativo en MVC Core , MVC Framework y Razor Pages .

¿Cuáles son las implicaciones en términos de costos a diferentes escalas?

Estructura de costos CraftMyPDF :

  • Nivel gratuito: 50 llamadas API/mes con límite de 3 plantillas
  • Los planes pagos comienzan con tarifas mensuales más altas
  • Los costos por PDF escalan linealmente con el volumen
  • Cuotas de suscripción mensuales/anuales continuas
  • Costos adicionales por funciones premium

Estructura de costos de IronPDF:

Para aplicaciones que procesan más de 1000 archivos PDF por mes, la licencia perpetua de IronPDF ofrece costos predecibles sin tarifas continuas. La calculadora de licencias ayuda a estimar los costos totales de propiedad. Considere actualizaciones y extensiones para equipos en crecimiento.

¿En qué se diferencian los flujos de trabajo de desarrollo?

Flujo de trabajo CraftMyPDF :

  1. El diseñador crea una plantilla en la interfaz web.
  2. El desarrollador asigna campos JSON a la plantilla
  3. La integración de API requiere configuración de autenticación
  4. Las pruebas requieren llamadas API y uso de crédito.
  5. Las actualizaciones de plantillas ocurren fuera de la implementación del código.

Flujo de trabajo de IronPDF:

  1. El desarrollador escribe la plantilla HTML/CSS en el código
  2. Pruebas locales sin límites de API
  3. Las plantillas se implementan con el código de la aplicación
  4. El control de versiones rastrea todos los cambios
  5. Integración de CI/CD para pruebas automatizadas

El enfoque autónomo de IronPDF permite ciclos de iteración más rápidos y desarrollo fuera de línea, cruciales para un desarrollo rápido. La biblioteca admite opciones de registro y representación personalizadas para la depuración.

¿Qué pasa con la privacidad y el cumplimiento de los datos?

Manejo de datos CraftMyPDF :

  • Documentos procesados en servidores en la nube
  • Se requiere transmisión de datos a través de Internet.
  • Puntos finales regionales para el cumplimiento
  • Políticas de almacenamiento de archivos temporales
  • Acuerdos de procesamiento de datos con terceros

Manejo de datos de IronPDF:

  • El procesamiento local mantiene los datos locales
  • Sin llamadas API externas ni requisitos de Internet
  • Control total sobre la seguridad de los documentos
  • Implementaciones compatibles con HIPAA y GDPR
  • Opciones de cifrado para datos confidenciales

Para las aplicaciones que manejan datos confidenciales de clientes, el procesamiento local de IronPDF elimina las preocupaciones de privacidad de terceros. Las firmas digitales y la protección con contraseña proporcionan capas de seguridad adicionales. La biblioteca también admite los estándares PDF/A y PDF/UA para garantizar su cumplimiento.

¿Qué tan rápido puedo agregar nuevos tipos de documentos?

Cronología CraftMyPDF :

  • Diseño de plantilla: 1-4 horas dependiendo de la complejidad
  • Mapeo y pruebas de campo: 1-2 horas
  • Depende de la disponibilidad del diseñador.
  • Los flujos de trabajo de aprobación de plantillas pueden generar retrasos
  • Limitado por las capacidades del editor

Cronología de IronPDF:

  • Creación de plantilla HTML: 30 minutos a 2 horas
  • Utilice marcos web existentes como Bootstrap
  • Reutilizar hojas de estilo CSS en todos los documentos
  • Pruebe localmente con retroalimentación inmediata
  • Implementar nuevos tipos de documentos con lanzamientos regulares

El enfoque de código primero de IronPDF generalmente reduce el tiempo de comercialización de nuevos tipos de documentos, especialmente cuando se utilizan recursos y marcos web existentes. La biblioteca admite conversiones de RTF a PDF , DOCX a PDF y Markdown a PDF para mayor flexibilidad.

¿Cuáles son las opciones de licencia?

Página de precios de IronPDF con tres niveles de licencia perpetua: Lite ($749), Plus ($1,499) y Professional ($2,999), con comparativas de funciones y un complemento opcional de redistribución sin regalías por $1,499.

IronPDF ofrece licencias perpetuas con tarifas únicas. La licencia Lite ( $799 ) admite desarrolladores individuales en un proyecto. La licencia profesional ( $1,199 ) cubre múltiples proyectos y desarrolladores. La licencia Enterprise ( $2,399 ) está destinada a equipos más grandes con amplias necesidades de implementación. Cada licencia incluye un año de soporte y actualizaciones. Una licencia de redistribución OEM permite la distribución comercial. Hay una prueba gratuita disponible para evaluación. Ver opciones de licencia completas .

CraftMyPDF utiliza precios basados en suscripción. El nivel gratuito se adapta al desarrollo y las pruebas con llamadas API limitadas. Los planes pagos aumentan los límites de uso y agregan funciones, adaptándose a las necesidades del negocio. Las suscripciones se gestionan a través del panel CraftMyPDF .

¿Qué documentación y soporte están disponibles?

¿Qué ofrece IronPDF en materia de documentación y soporte?

IronPDF proporciona documentación completa que incluye guías detalladas, ejemplos y una sección de inicio rápido . Los recursos cubren desde el uso básico hasta configuraciones avanzadas. Los canales de soporte incluyen una base de conocimientos , soporte por correo electrónico y solicitudes de soporte de ingeniería . El equipo de soporte opera 24 horas al día, 5 días a la semana para brindar asistencia inmediata. Las guías de solución de problemas abordan problemas comunes.

La documentación incluye referencias de API , tutoriales y ejemplos de código para todas las funciones. Los registros de cambios rastrean las actualizaciones y los hitos resaltan los lanzamientos principales. Para obtener asistencia con la migración, consulte las guías que comparan Aspose , iText , Syncfusion y otros competidores .

¿Qué ofrece CraftMyPdf en cuanto a documentación y soporte?

CraftMyPDF ofrece documentación de API que detalla puntos finales, parámetros y ejemplos. Las guías cubren la creación de plantillas, solicitudes de API y manejo de respuestas. El soporte está disponible a través del correo electrónico y los foros de la comunidad para preguntas y aportes.

¿Qué solución PDF debo elegir?

Tanto IronPDF como CraftMyPDF ofrecen soluciones capaces de generar PDF con enfoques distintos. CraftMyPDF se destaca por su diseñador de plantillas visuales y su procesamiento basado en la nube, mientras que IronPDF proporciona un control programático completo a través de la representación HTML .

IronPDF se destaca por su amplio conjunto de funciones para requisitos de documentos complejos. Convierte HTML , URL y archivos a PDF y admite funciones avanzadas como firmas digitales , manejo de formularios y edición de documentos . La implementación autónoma sin dependencias externas garantiza un funcionamiento confiable en todas las plataformas .

Los modelos de licencia difieren significativamente. Las licencias perpetuas de IronPDF comienzan en $799 con una prueba gratuita para evaluación. El paquete Iron Suite ofrece nueve productos por el precio de dos, lo que proporciona un valor excepcional para necesidades completas de gestión de documentos.

Para los desarrolladores que requieren control total sobre la generación de PDF con soporte HTML/CSS enriquecido, manipulación avanzada de documentos y costos predecibles, IronPDF ofrece una solución confiable. Su extensa documentación , soporte receptivo y opciones de implementación flexibles lo hacen adecuado para aplicaciones que van desde la generación simple de documentos hasta flujos de trabajo empresariales complejos.

Por favor nota CraftMyPDF es una marca registrada de su respectivo propietario. Este sitio no está afiliado, respaldado ni patrocinado por CraftMyPDF . Todos los nombres de producto, logotipos y marcas son propiedad de sus respectivos dueños. Las comparaciones son sólo para fines informativos y reflejan información disponible públicamente al momento de escribir.

Preguntas Frecuentes

¿Cuáles son las ventajas de utilizar una biblioteca de PDF de C# sobre una solución basada en API?

Una biblioteca de PDF completa como IronPDF ofrece características extensas, integración perfecta con entornos de desarrollo .NET, soporte robusto y opciones de licencia rentables, lo que la convierte en una opción superior para el manejo de documentos complejos.

¿Cómo puedo convertir contenido HTML en un documento PDF usando C#?

Puedes usar IronPDF para convertir contenido HTML en documentos PDF. Soporta HTML5 y CSS3, asegurando que el contenido web se reproduzca con precisión en los PDFs generados.

¿Qué características se destacan en IronPDF para la generación de PDF?

IronPDF ofrece firmas digitales, llenado de formularios, edición de PDF, anotaciones y compatibilidad multiplataforma. Se destaca en la conversión de HTML, URLs e imágenes en PDFs con un rendimiento robusto y optimización.

¿Cómo maneja CraftMyPDF el diseño de plantillas de PDF?

CraftMyPDF ofrece un editor web de arrastrar y soltar que permite a los usuarios diseñar plantillas de PDF sin necesidad de programación. Soporta integración de datos JSON, permitiendo la creación de documentos PDF personalizados.

¿Qué opciones de licencia están disponibles para herramientas de PDF como IronPDF?

IronPDF proporciona opciones de licencia flexibles, incluyendo licencias Lite, Professional y Enterprise con un pago único. También ofrece una prueba gratuita para que los nuevos usuarios exploren sus características.

¿Cómo puedo integrar una API de generación de PDF en mi aplicación C#?

Para integrar una API de generación de PDF como CraftMyPDF, necesitas crear una cuenta, seleccionar un plan apropiado, obtener una clave API y usar bibliotecas como System.Net.Http y RestSharp para hacer llamadas API.

¿Qué recursos de soporte están disponibles para los desarrolladores que usan IronPDF?

IronPDF proporciona documentación extensa, tutoriales y soporte técnico 24/5. Estos recursos ayudan a los desarrolladores a implementar y resolver problemas de manera efectiva en sus proyectos.

¿Cómo instalo IronPDF en una aplicación C#?

IronPDF se puede instalar a través del Administrador de paquetes NuGet en Visual Studio, usando la Consola del Administrador de paquetes NuGet, o descargando el paquete directamente del sitio web de NuGet.

¿Cómo mejora IronPDF la seguridad de los documentos PDF y la interactividad?

IronPDF soporta características como firmas digitales y manejo de formularios, que mejoran la seguridad de los documentos y la interactividad, haciéndolo adecuado para una gestión integral de PDFs.

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