IRONSOFTWAREHOME
VIDEOS

Cómo proteger archivos PDF con contraseñas y permisos en C#

Curtis Chau
Curtis Chau
Updated: 19 de julio de 2026

La migración de Gotenberg a IronPDF transforma su flujo de trabajo PDF .NET de una arquitectura de microservicios basada en Docker con llamadas a la API HTTP a una biblioteca C# nativa en proceso. Para los ISVs y desarrolladores españoles que construyen software de facturación bajo VeriFactu o generan documentos Facturae para FACe, esta transición elimina también los riesgos de latencia de red y gestión de contenedores en flujos de trabajo críticos de cumplimiento. Esta guía proporciona una ruta de migración completa y paso a paso que elimina la sobrecarga de la infraestructura y la complejidad de la gestión de contenedores para los desarrolladores profesionales de .NET.

Contexto regulatorio español: por qué importa la arquitectura

Antes de entrar en los detalles técnicos de la migración, conviene señalar por qué la arquitectura de la biblioteca PDF tiene implicaciones directas para el cumplimiento normativo en España:

VeriFactu y Crea y Crece (Real Decreto-Ley 15/2025): los proveedores de software de facturación deben incluir la leyenda VERI*FACTU o Factura verificable en la sede electrónica de la AEAT en las representaciones gráficas de las facturas. Una arquitectura Gotenberg, al interponer llamadas HTTP y contenedores Docker entre el código C# y el PDF resultante, añade puntos de fallo que pueden comprometer la cadena de auditoría. IronPDF en proceso elimina esa capa.

TicketBAI (Bizkaia, Gipuzkoa, Araba): la generación de facturas TicketBAI requiere firma XAdES y QR específico por provincia foral. En una arquitectura Gotenberg, la firma debe realizarse fuera del contenedor y coordinarse con las llamadas HTTP; con IronPDF, todo ocurre en el mismo proceso .NET.

Facturae XML / FACe: para el sector público, la generación de documentos PDF que acompañan a los XML Facturae es un paso crítico. La latencia añadida por Gotenberg (10-100 ms por solicitud) puede ser problemática en flujos de trabajo de alto volumen de envíos B2G.

Penalización de hasta 150.000 €/año: el régimen VeriFactu sanciona a los proveedores de software de facturación no conformes. Una arquitectura simplificada con IronPDF reduce las superficies de error y facilita la auditoría del cumplimiento.

Por qué migrar de Gotenberg a IronPDF

El problema de la arquitectura Gotenberg

Gotenberg es una arquitectura de microservicios basada en Docker para la generación de PDF. Aunque potente y flexible, introduce una complejidad significativa para las aplicaciones C#:

  1. Gastos generales de infraestructura: requiere Docker, orquestación de contenedores (Kubernetes/Docker Compose), descubrimiento de servicios y equilibrio de carga. Cada despliegue es más complejo.

  2. Latencia de red: cada operación de PDF requiere una llamada HTTP a un servicio independiente, lo que añade entre 10 y 100 ms por solicitud. Esta latencia aumenta rápidamente en situaciones de alto volumen.

  3. Problemas de inicio en frío: el inicio del contenedor puede agregar entre 2 y 5 segundos a las primeras solicitudes. Cada reinicio de pod, cada evento de escalado y cada despliegue desencadenan arranques en frío.

  4. Complejidad operativa: debe administrar la salud, la escalabilidad, el registro y la supervisión del contenedor como preocupaciones separadas de su aplicación principal.

  5. Datos de formulario multiparte: cada solicitud requiere la construcción de cargas útiles de datos de formulario/multiparte: detalladas, propensas a errores y tediosas de mantener.

  6. Puntos de falla: los tiempos de espera de la red, la falta de disponibilidad del servicio y las fallas de los contenedores pasan a ser su responsabilidad.

  7. Gestión de versiones: las imágenes de Gotenberg se actualizan por separado de la aplicación; los cambios en la API pueden romper las integraciones de forma inesperada.

Comparación entre Gotenberg e IronPDF

AspectoGotenbergIronPDF
DespliegueContenedor Docker + orquestaciónPaquete NuGet único
ArquitecturaMicroservicio (API REST)Biblioteca en proceso
Latencia por solicitud10-100ms+ (ida y vuelta en red)< 1ms de sobrecarga
Arranque en frío2-5 segundos (init del contenedor)1-2 segundos (sólo la primera traducción)
InfraestructuraDocker, Kubernetes, balanceadores de cargaNo es necesario
Modos de falloFallos en redes, contenedores y serviciosExcepciones de .NET Standard
Estilo APIREST multipart/form-dataLlamadas a métodos nativos de C#
EscalaHorizontal (más contenedores)Vertical (en proceso)
DepuraciónNecesidad de rastreo distribuidoDepurador estándar
Control de versionesEtiquetas de la imagen del contenedorVersiones de los paquetes NuGet

Para los equipos que planifican la adopción de .NET 10 y C# 14 hasta 2025 y 2026, IronPDF proporciona una base preparada para el futuro con cero dependencias de infraestructura que se integra de forma nativa con los patrones modernos de .NET.


Evaluación de la complejidad de la migración

Esfuerzo estimado por función

CaracterísticaComplejidad de la migración
HTML a PDFMuy bajo
URL a PDFMuy bajo
Tamaño de papel personalizadoBajo
MárgenesBajo
Fusión de PDFBajo
Encabezados/pies de páginaMedio
Retrasos de esperaBajo
Conversión PDF/ABajo

Cambio de paradigma

El cambio fundamental en esta migración de Gotenberg es de llamadas a la API HTTP con datos de formularios multiparte a llamadas a métodos nativos de C#:

Gotenberg:  HTTP POST multipart/form-data a contenedor Docker
IronPDF:    Llamadas directas a métodos en objetos de C#
Text

Antes de empezar

Prerrequisitos

  1. Versión .NET: IronPDF es compatible con .NET Framework 4.6.2+ y .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Clave de licencia: Obtenga su clave de licencia de IronPDF en IronPDF
  3. Planificar la eliminación de la infraestructura: documentar los contenedores de Gotenberg para su desmantelamiento posterior a la migración.

Identifique el uso de Gotenberg

# Find direct HTTP calls to Gotenberg
grep -r "gotenberg\|/forms/chromium\|/forms/libreoffice\|/forms/pdfengines" --include="*.cs" .

# Find GotenbergSharpApiClient usage
grep -r "GotenbergSharpClient\|Gotenberg.Sharp\|ChromiumRequest" --include="*.cs" .

# Find Docker/Kubernetes Gotenberg configuration
grep -r "gotenberg/gotenberg\|gotenberg:" --include="*.yml" --include="*.yaml" .
SHELL

Cambios en el paquete NuGet

# Remove Gotenberg client (if using)
dotnet remove package Gotenberg.Sharp.API.Client

# Install IronPDF
dotnet add package IronPdf
SHELL

Inicio rápido de la migración

Paso 1: Actualizar la configuración de la licencia

Antes (Gotenberg):

Gotenberg no requiere licencia, pero sí una infraestructura Docker con URL de contenedor.

private readonly string _gotenbergUrl = "http://localhost:3000";

Después (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

Paso 2: Actualizar las importaciones de espacios de nombres

// Before (Gotenberg)
using System.Net.Http;
using System.Threading.Tasks;
using System.IO;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;

Referencia completa de la API

Gotenberg Endpoint a IronPDF

Ruta GotenbergEquivalente de IronPDF
POST /forms/chromium/convert/htmlChromePdfRenderer.RenderHtmlAsPdf()
POST /forms/chromium/convert/urlChromePdfRenderer.RenderUrlAsPdf()
POST /forms/pdfengines/mergePdfDocument.Merge()
POST /forms/pdfengines/convertpdf.SaveAs() con configuraciones
GET /healthN/A

Mapeo de parámetros de formulario a RenderingOptions

Parámetro GotenbergPropiedad de IronPDFNotas de conversión
paperWidth (pulgadas)RenderingOptions.PaperSizeUtilizar enum o tamaño personalizado
paperHeight (pulgadas)RenderingOptions.PaperSizeUtilizar enum o tamaño personalizado
marginTop (pulgadas)RenderingOptions.MarginTopMultiplique por 25,4 para mm
marginBottom (pulgadas)RenderingOptions.MarginBottomMultiplique por 25,4 para mm
printBackgroundRenderingOptions.PrintHtmlBackgroundsBooleano
landscapeRenderingOptions.PaperOrientationLandscape enumeración
waitDelayRenderingOptions.RenderDelayConvertir a milisegundos

Ejemplos de migración de código

Ejemplo 1: HTML básico a PDF

Antes (Gotenberg):

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

class GotenbergExample
{
    static async Task Main()
    {
        var gotenbergUrl = "http://localhost:3000/forms/chromium/convert/html";
        
        using var client = new HttpClient();
        using var content = new MultipartFormDataContent();
        
        var html = "<html><body><h1>Hello from Gotenberg</h1></body></html>";
        content.Add(new StringContent(html), "files", "index.html");
        
        var response = await client.PostAsync(gotenbergUrl, content);
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        
        await File.WriteAllBytesAsync("output.pdf", pdfBytes);
        Console.WriteLine("PDF generated successfully");
    }
}

Después (IronPDF):

// NuGet: Install-Package IronPdf
using System;
using IronPdf;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        var html = "<html><body><h1>Hello from IronPDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF generated successfully");
    }
}

La diferencia es sustancial: Gotenberg requiere construir un HttpClient, construir un MultipartFormDataContent, realizar un HTTP POST asíncrono a un contenedor Docker en ejecución y manejar la respuesta de la matriz de bytes. IronPDF reduce esto a tres líneas con una llamada al método ChromePdfRenderer, sin sobrecarga de red, sin dependencia de contenedor y sin complejidad asincrónica. Consulte la documentación HTML a PDF para obtener más opciones de conversión.

Generación de facturas VeriFactu con IronPDF

Para los desarrolladores españoles que construyen software de facturación, IronPDF permite generar la representación gráfica completa de la factura — incluyendo la leyenda VERI*FACTU y el QR de la AEAT — desde una plantilla HTML sin necesidad de infraestructura Docker:

// NuGet: Install-Package IronPdf
using IronPdf;

class FacturaVeriFactu
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        
        string html = @"
        <html>
        <body style='font-family: Arial, sans-serif; padding: 20px;'>
            <h1>FACTURA Nº 2024-0001</h1>
            <p>Emisor: Mi Empresa S.L. | NIF: B12345678</p>
            <table border='1' cellpadding='5' style='width:100%; border-collapse:collapse;'>
                <tr><th>Concepto</th><th>Base</th><th>IVA 21%</th><th>Total</th></tr>
                <tr><td>Servicio</td><td>1.000,00 €</td><td>210,00 €</td><td>1.210,00 €</td></tr>
            </table>
            <div style='margin-top:20px; border:2px solid black; padding:8px; font-weight:bold;'>
                VERI*FACTU — Factura verificable en la sede electrónica de la AEAT
            </div>
        </body>
        </html>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("factura-verifactu.pdf");
    }
}
C#

Con Gotenberg, este flujo requeriría construir el multipart, esperar la respuesta HTTP, gestionar errores de red y mantener el contenedor Docker activo. Con IronPDF, la generación es síncrona, en proceso y sin dependencias de infraestructura.

Ejemplo 2: Conversión de URL a PDF

Antes (Gotenberg):

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

class GotenbergUrlToPdf
{
    static async Task Main()
    {
        var gotenbergUrl = "http://localhost:3000/forms/chromium/convert/url";
        
        using var client = new HttpClient();
        using var content = new MultipartFormDataContent();
        
        content.Add(new StringContent("https://example.com"), "url");
        
        var response = await client.PostAsync(gotenbergUrl, content);
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        
        await File.WriteAllBytesAsync("webpage.pdf", pdfBytes);
        Console.WriteLine("PDF from URL generated successfully");
    }
}

Después (IronPDF):

// NuGet: Install-Package IronPdf
using System;
using IronPdf;

class IronPdfUrlToPdf
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("PDF from URL generated successfully");
    }
}

El enfoque de Gotenberg requiere un punto final diferente (/forms/chromium/convert/url), la creación de contenido multiparte con la URL como campo de formulario y el manejo de respuestas HTTP asincrónicas. El método RenderUrlAsPdf() de IronPDF acepta la URL directamente y devuelve un objeto PdfDocument sincrónicamente. Más información sobre Conversión de URL a PDF.

Ejemplo 3: Tamaño de papel y márgenes personalizados

Antes (Gotenberg):

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

class GotenbergCustomSize
{
    static async Task Main()
    {
        var gotenbergUrl = "http://localhost:3000/forms/chromium/convert/html";
        
        using var client = new HttpClient();
        using var content = new MultipartFormDataContent();
        
        var html = "<html><body><h1>Custom Size PDF</h1></body></html>";
        content.Add(new StringContent(html), "files", "index.html");
        content.Add(new StringContent("8.5"), "paperWidth");
        content.Add(new StringContent("11"), "paperHeight");
        content.Add(new StringContent("0.5"), "marginTop");
        content.Add(new StringContent("0.5"), "marginBottom");
        
        var response = await client.PostAsync(gotenbergUrl, content);
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        
        await File.WriteAllBytesAsync("custom-size.pdf", pdfBytes);
        Console.WriteLine("Custom size PDF generated successfully");
    }
}

Después (IronPDF):

// NuGet: Install-Package IronPdf
using System;
using IronPdf;
using IronPdf.Rendering;

class IronPdfCustomSize
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.MarginTop = 50;
        renderer.RenderingOptions.MarginBottom = 50;
        
        var html = "<html><body><h1>Custom Size PDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        
        pdf.SaveAs("custom-size.pdf");
        Console.WriteLine("Custom size PDF generated successfully");
    }
}

Gotenberg requiere que se agreguen parámetros basados en cadenas ("8.5", "11", "0.5") a los datos de formularios de varias partes; no hay seguridad de tipos, no hay IntelliSense y es fácil escribirlos mal. IronPDF proporciona propiedades fuertemente tipadas con enumeraciones PdfPaperSize y valores de margen numéricos. Tenga en cuenta que los márgenes de IronPDF están en milímetros (50 mm ≈ 2 pulgadas), mientras que Gotenberg utiliza pulgadas.


Notas de migración críticas

Conversiones de unidades

La conversión más importante en esta migración de Gotenberg son las unidades de margen:

// Gotenberg: margins in inches
content.Add(new StringContent("0.5"), "marginTop");    // 0.5 inches
content.Add(new StringContent("1"), "marginBottom");   // 1 inch

// IronPDF: margins in millimeters
renderer.RenderingOptions.MarginTop = 12.7;    // 0.5 inches × 25.4 = 12.7mm
renderer.RenderingOptions.MarginBottom = 25.4; // 1 inch × 25.4 = 25.4mm

Fórmula de conversión: millimeters = inches × 25.4

Síncrono frente a asíncrono

Gotenberg requiere operaciones asíncronas debido a la comunicación HTTP:

// Gotenberg: Forced async due to network calls
var response = await client.PostAsync(gotenbergUrl, content);
var pdfBytes = await response.Content.ReadAsByteArrayAsync();

// IronPDF: Synchronous in-process execution
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");

// IronPDF: Async wrapper if needed
var pdf = await Task.Run(() => renderer.RenderHtmlAsPdf(html));

Manejo de errores

// Gotenberg: HTTP error handling
try
{
    var response = await client.PostAsync(gotenbergUrl, content);
    response.EnsureSuccessStatusCode();  // What if 500? 503? Timeout?
}
catch (HttpRequestException ex) { /* Network error */ }
catch (TaskCanceledException ex) { /* Timeout */ }

// IronPDF: Standard .NET exceptions
try
{
    var pdf = renderer.RenderHtmlAsPdf(html);
}
catch (Exception ex)
{
    Console.WriteLine($"PDF generation failed: {ex.Message}");
}

Eliminación de infraestructuras

Tras la migración, elimine Gotenberg de su infraestructura:

# REMOVE from docker-compose.yml:
# services:
#   gotenberg:
#     image: gotenberg/gotenberg:8
#     ports:
#       - "3000:3000"
#     deploy:
#       resources:
#         limits:
#           memory: 2G
Text

Consideraciones sobre el rendimiento

Comparación de latencias

OperaciónGotenberg (Caliente)Gotenberg (Arranque en frío)IronPDF (Primera versión)IronPDF (continuación)
HTML sencillo150-300ms2-5 segundos1-2 segundos50-150ms
HTML complejo500-1500ms3-7 segundos1.5-3 segundos200-800ms
Renderización de URL1-5 segundos3-10 segundos1-5 segundos500ms-3s

Eliminación de costes de infraestructura

RecursoGotenbergIronPDF
Contenedores necesarios1-N (escalado)0
Memoria por contenedor512 MB-2 GBN/A
Sobrecarga de red por solicitud10-100ms0ms
Puntos finales del chequeoRequeridoNo es necesario
Equilibrador de cargaA menudo se necesitaNo es necesario

Solución de problemas

Tema 1: Los patrones HttpClient no son necesarios

Problema: el código todavía usa HttpClient y MultipartFormDataContent.

Solución: reemplazar completamente con ChromePdfRenderer:

// Remove all of this:
// using var client = new HttpClient();
// using var content = new MultipartFormDataContent();
// content.Add(new StringContent(html), "files", "index.html");
// var response = await client.PostAsync(url, content);

// Replace with:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);

Tema 2: Unidades de margen erróneas

Problema: los archivos PDF tienen márgenes incorrectos después de la migración.

Solución: convertir pulgadas a milímetros:

// Gotenberg used inches: "0.5"
// IronPDF uses millimeters: 0.5 × 25.4 = 12.7
renderer.RenderingOptions.MarginTop = 12.7;

Edición 3: Referencias URL de contenedores

Problema: el código contiene http://gotenberg:3000 o URL similares.

Solución: elimine todas las referencias URL del contenedor; IronPDF se ejecuta en proceso:

// Remove:
// private readonly string _gotenbergUrl = "http://gotenberg:3000";

// IronPDF needs no URL - it's in-process
var renderer = new ChromePdfRenderer();

Lista de comprobación de la migración

Pre-Migración

  • Inventariar todas las llamadas HTTP de Gotenberg en el código base
  • Documentar la configuración actual de Gotenberg (tiempos de espera, márgenes, tamaños de papel)
  • Identificar toda la configuración de Gotenberg de Docker/Kubernetes
  • Obtener la clave de licencia de IronPDF
  • Planificar el desmantelamiento de infraestructuras

Migración de código

  • Instalar el paquete NuGet de IronPDF: dotnet add package IronPdf
  • Eliminar paquetes de cliente de Gotenberg
  • Reemplazar todas las llamadas HTTP a Gotenberg con llamadas al método IronPDF
  • Convertir unidades de margen de pulgadas a milímetros
  • Actualización del manejo de errores (errores HTTP → excepciones .NET)
  • Agregar inicialización de clave de licencia al inicio
  • Para software de facturación español: incorporar leyendas VERI*FACTU y QR de la AEAT en plantillas HTML

Migración de infraestructuras

  • Eliminar Gotenberg de Docker Compose / Kubernetes
  • Actualizar los pipelines de CI/CD (eliminar las extracciones de imágenes de Gotenberg)
  • Eliminar los controles de salud de Gotenberg
  • Eliminar la URL de Gotenberg de la configuración

Pruebas

  • Prueba de conversión de HTML a PDF
  • Prueba de conversión de URL a PDF
  • Verificar la precisión del margen y del tamaño
  • Prueba de rendimiento bajo carga
  • Pruebe el tiempo de calentamiento del primer renderizado
  • Para software de facturación español: validar leyenda VERI*FACTU, QR AEAT y conformidad Facturae

Posmigración

  • Eliminar implementaciones de contenedores de Gotenberg
  • Archivar archivos de configuración de Gotenberg
  • Actualización de la documentación
  • Supervisar el uso de memoria de la aplicación
  • Verificar que no haya conexiones de red huérfanas

Cumplimiento LOPDGDD, FNMT-RCM y Crea y Crece: el entorno regulatorio completo para ISVs españoles

Migrar de Gotenberg a IronPDF no es solo una simplificación arquitectónica — para los ISVs de software de facturación en España, es una decisión de cumplimiento regulatorio. Esta tabla sintetiza el mapa de cumplimiento con el calendario español vigente:

Marco regulatorioEstadoAcción con IronPDF
VeriFactu (RDL 15/2025)Vigente para software vendors desde 29/07/2025Leyenda VERI*FACTU + QR AEAT + in-process (sin HTTP)
TicketBAI (Bizkaia, Gipuzkoa, Araba)VigenteFirma XAdES/PAdES con certificados FNMT-RCM
SII grandes empresasVigente (tiempo real)Headless on-premise + PDF/A
Crea y Crece (>8M€)Desde 2027Facturae XML en PDF/A-3 (EN 16931/CIUS-ES)
Crea y Crece (resto)Desde 2028Mismo estándar para pymes/autónomos

LOPDGDD y AEPD: Las facturas generadas en flujos de cumplimiento VeriFactu contienen datos personales (NIF, CIF, domicilio fiscal) bajo supervisión de la AEPD. Gotenberg, al enviar el contenido HTML a un contenedor externo (aunque sea local), introduce una superficie de análisis adicional bajo LOPDGDD. IronPDF procesa directamente en proceso — sin transferencias de datos entre servicios, simplificando el análisis de cumplimiento.

eIDAS y FNMT-RCM: Para la firma digital de facturas electrónicas (TicketBAI XAdES para las tres Haciendas Forales, PAdES para FACe), IronPDF soporta certificados PKCS#12 emitidos por la FNMT-RCM, la CA española reconocida por la AEAT. En una arquitectura Gotenberg, la firma XAdES debe coordinarse externamente al contenedor y antes/después de las llamadas HTTP — añadiendo complejidad y puntos de fallo en flujos críticos de cumplimiento.

iText AGPL y VeriFactu: Al migrar desde Gotenberg, algunos equipos evalúan iText/iText7. La licencia AGPL de iText obliga a los ISVs de software de facturación propietario a publicar su código fuente o adquirir licencia comercial. Esta restricción se amplifica bajo el régimen de penalizaciones VeriFactu de hasta 150.000 €/año. IronPDF ofrece licenciamiento comercial predecible sin restricciones de distribución AGPL.

Ejemplo: factura VeriFactu con IronPDF in-process (NIF/CIF, formato EUR español)

A diferencia de Gotenberg (que requeriría serializar el HTML en una petición HTTP multipart hacia el contenedor), IronPDF genera la factura directamente en el proceso .NET:


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 estructurados y visualmente atractivos.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta