Comparativas

gPdf vs QuestPDF para generación de documentos en .NET

QuestPDF es una excelente biblioteca PDF para C#. gPdf es una API alojada en el edge. Compare licencias, ejecución, plantillas, cumplimiento, códigos de barras y cuándo conviene cada opción.

Resumen

Elija según su frontera de confianza. QuestPDF mantiene generación y datos del documento dentro del proceso .NET, a cambio de que su equipo gestione fuentes, códigos de barras, escala y cumplimiento. gPdf convierte la generación en una llamada HTTP desde cualquier lenguaje, a cambio de enviar datos del documento a un renderizador de terceros y depender de su disponibilidad. Una aplicación .NET que prioriza control local, privacidad y uso sin conexión suele elegir QuestPDF; equipos políglotas que quieren infraestructura PDF en el edge con precio por página suelen elegir gPdf.

Lado a lado

Criterio gPdf QuestPDF Ventaja
Frontera del producto
La decisión correcta depende de si quiere comprar un servicio o ser dueño de la ruta de generación.
API alojada en el edge para JSON Render, Template Render y E-Invoice Render. Biblioteca local C# / .NET instalada desde NuGet y llamada desde el código de la aplicación. Empate
Integración principal HTTPS POST desde Node, Python, Go, .NET, Ruby, PHP, Java, workers, trabajos o proxies de aplicación. API fluida de C# con tipado fuerte, soporte del IDE y construcciones familiares de .NET. Empate
Ubicación del entorno de ejecución Renderizador en el edge sobre Cloudflare Workers; no necesita servicio PDF, configuración de fuentes ni clúster de despliegue en su pila. Se ejecuta donde se ejecute su aplicación .NET; su equipo gestiona CPU, memoria, dependencias nativas y de paquetes, despliegue, monitorización y escala. gPdf
Flujo de códigos de barras Elemento nativo `barcode` para formatos 1D, 2D y GS1 (`gs1128`, `sscc`, `gtin8/12/13/14`, `gs1datamatrix`, `gs1qrcode`, Aztec, PDF417, MaxiCode), con colocación integrada del texto legible. La documentación oficial integra ZXing.Net, instalado por separado desde NuGet y convertido a SVG; los identificadores de aplicación GS1 y el encuadre FNC1 se cablean a mano. gPdf
Fuentes y texto multilingüe Fuentes empaquetadas y gestionadas por el servicio, selección automática implícita, modos explícitos `prefer` / `strict` y sustitución CJK por escritura (KR, JP, SC); los llamadores no empaquetan archivos de fuentes en ninguna aplicación. Incluye Lato y puede cargar fuentes del entorno, del directorio de despliegue y personalizadas con cadenas de reserva, pero su propia documentación advierte que en la mayoría de despliegues en la nube hay pocas fuentes o ninguna. gPdf
Contraseñas y permisos al generar
QuestPDF admite las mismas fortalezas de cifrado y contraseñas de usuario/propietario, pero como paso posterior sobre el archivo generado, no directamente durante la generación.
Se define en la misma solicitud de generación: `settings.security` aplica cifrado AES-128/256, contraseñas de apertura y propietario, y ocho indicadores de permisos en la misma llamada `/api/v1/pdf/render`. Primero genera y después cifra en una Document Operation separada: `DocumentOperation.LoadFile(...).Encrypt(new Encryption256Bit { ... }).Save(...)`. gPdf
Iteración de plantillas gPdf Studio diseña las mismas plantillas JSON que producción genera con `template_id + data`. QuestPDF Companion ofrece vista previa con recarga en caliente, inspección de jerarquía, herramientas de coordenadas y navegación al código fuente de documentos C#. Empate
Precio comercial
Los precios de QuestPDF se verificaron en sus páginas públicas de licencia el 2026-06-02. Equipos .NET de alto volumen deberían comparar licencia + hosting frente al precio por página de gPdf.
El plan Basic cuesta 5 USD/mes e incluye 100.000 páginas; el exceso empieza en 0,00005 USD por página, con el mismo cálculo público por página en todas las superficies. Gratis bajo términos Community MIT por debajo de 1 millón USD de ingresos brutos anuales; las licencias comerciales perpetuas publican Professional a 999 USD (hasta 10 desarrolladores) y Enterprise a 2.999 USD (toda la organización, sin contar desarrolladores), más impuestos locales, cada una con un año de actualizaciones. Empate
Costes de servidor y despliegue No hay flota de servidores que desplegar para la API pública; el uso se factura por plan y páginas. Los términos comerciales anuncian proyectos, servidores y despliegues ilimitados; la infraestructura sigue bajo responsabilidad del cliente. Empate
PDF/A y factura electrónica 6 perfiles PDF/A (1b/2b/3b/4/2u/3u), PDF/UA-1 y un punto de conexión alojado Factur-X / ZUGFeRD con XML EN 16931 CII en PDF/A-3b, validación del lado servidor y residencia de datos UE / global. Soporte sólido de PDF/A, PDF/UA-1 y ZUGFeRD 2.1 / Factur-X en código; usted conecta veraPDF y Mustang para validar. Empate
Adónde van los datos del documento
QuestPDF mantiene los datos en proceso; gPdf los transmite pero no retiene nada. Los logs operativos guardan solo estado HTTP y duración, nunca cuerpos de solicitud.
La API pública transmite los datos de la solicitud, pero el servicio es de retención cero: el JSON de la solicitud vive en un isolate de Cloudflare Workers solo durante la generación (típicamente unos 4 ms), nunca se almacena, registra ni usa para entrenar. La residencia de datos UE / global y el despliegue local o privado reducen o cierran aún más la exposición. Los bytes se producen dentro del proceso; los datos del documento no cruzan su frontera de confianza hacia un tercero. Empate
Operación sin conexión / redes aisladas
QuestPDF funciona sin conexión sin preparación; gPdf llega al mismo punto mediante un despliegue privado empresarial.
La API pública requiere red; el despliegue empresarial local o privado ejecuta el renderizador dentro de su propia infraestructura para operar sin conexión o en redes aisladas. Se ejecuta localmente sin clave de licencia, sin servidor de activación y sin llamadas de red en tiempo de ejecución; el tipo de licencia se fija en una línea de código mediante un sistema de confianza. Empate
Operaciones sobre PDF existentes Genera archivos PDF nuevos desde solicitudes estructuradas; no carga, fusiona, descifra ni edita archivos existentes. Operaciones documentales sobre PDF existentes: fusionar, reordenar / invertir / filtrar páginas, superposiciones, cifrar y descifrar con 40/128/256 bits, adjuntos, metadatos XMP y linearización web. QuestPDF
Gráficos y visualización de datos
Ambos dependen de una biblioteca de gráficos para convertir datos en una visualización; QuestPDF la dibuja dentro del documento, gPdf coloca el SVG / PNG que usted produce. QuestPDF lidera en gráficos integrados, mapas y lienzo.
Dibuja arte vectorial con el elemento `path` (datos de ruta SVG) y formas, o incrusta un gráfico SVG / PNG producido por cualquier biblioteca; no incluye motor de gráficos, mapas ni API de lienzo. Integraciones de gráficos de primera clase (ScottPlot, LiveCharts, Microcharts), mapas de Mapbox y una API de lienzo SkiaSharp para gráficos personalizados. QuestPDF
Mejor caso de uso por defecto Documentos empresariales en producción compartidos entre equipos: etiquetas, facturas, recibos, estados de cuenta, entradas y facturas electrónicas. Aplicaciones C# que quieren generación local de documentos, control total del código y ninguna dependencia de servicio en tiempo de ejecución. Empate

Cuándo elegir cuál

Elija gPdf si
  • La generación PDF es infraestructura compartida por varios servicios o lenguajes, no una función atada a una sola aplicación .NET.
  • Quiere sacar de su pila la generación PDF, la gestión de fuentes, la geometría de códigos de barras y el escalado regional.
  • Su equipo quiere que los cambios de diseño sean `template_id + data`, no despliegues de código C#.
  • Necesita generación en el edge cerca de almacenes, clientes o procesos del servidor sin desplegar un servicio PDF .NET en cada región.
  • Prefiere un precio público por página y no pasar por compras de licencia comercial antes de la primera generación en producción.
Elija QuestPDF si
  • Su producto parte de .NET y el código C# es la fuente de referencia natural para el diseño del documento.
  • Los datos del documento deben quedarse dentro de su perímetro y no se contempla un despliegue privado empresarial de gPdf.
  • Necesita generación sin conexión o en redes aisladas desde el primer día, sin montar un despliegue privado de generación.
  • La generación está en una ruta síncrona crítica de latencia donde una llamada dentro del proceso supera a cualquier ida y vuelta de red.
  • Necesita operaciones sobre PDF existentes: fusión, extracción de páginas, superposiciones, descifrado o adjuntos dentro de la misma biblioteca.
  • Genera gráficos, mapas o visualizaciones personalizadas con SkiaSharp dentro del documento (ScottPlot, LiveCharts, Microcharts, Mapbox).
  • Puede usar los términos Community MIT, o quiere una licencia perpetua de pago único, y operar el generador localmente no es una carga.
Capacidades

gPdf es una API de JSON a PDF en el edge, pensada para facturas, documentos, etiquetas de envío, códigos de barras, PDF/A y facturas electrónicas de alto volumen. Renderizado de PDF en milisegundos a escala global en el edge, optimizado para generar documentos de forma predecible y con calidad industrial. Precios de infraestructura, lo bastante bajos como para sustituir la construcción y operación de su propia infraestructura PDF.

Capacidades

QuestPDF es excelente cuando C# es la frontera del producto

QuestPDF merece una comparación respetuosa. Es una biblioteca moderna de generación PDF para desarrolladores C#, con API fluida, tipado fuerte, documentación amplia, Companion App para previsualizar y depurar, y un modelo de licencias inusualmente claro para un SDK PDF.

La pregunta de producto no es “¿cuál puede crear un PDF?”. Ambos pueden. La pregunta útil es dónde debe vivir la frontera del PDF: dentro de una aplicación .NET que controla diseño, bytes y ciclo de vida, o como un servicio de infraestructura que llaman múltiples productos y lenguajes.

Guía rápida de decisión

  • Elija QuestPDF cuando C# sea la fuente de referencia del documento, la aplicación deba funcionar sin conexión o necesite operaciones locales sobre PDF existentes.
  • Elija gPdf cuando una sola capa PDF deba servir a Node, Python, Go, .NET, trabajos y sistemas regionales mediante la misma API HTTP.
  • Elija gPdf cuando los cambios de diseño deban ser revisiones de plantilla, no recompilaciones C# y redespliegues de servicio.

Misma familia de documentos, distinto modelo de control

Con QuestPDF la aplicación controla la generación PDF. Es una fortaleza real: C# queda cerca del modelo de dominio, se ejecuta y depura localmente, y no hay llamada en tiempo de ejecución a una API externa.

La contrapartida es que su equipo también asume el resto de la superficie de producción:

  • CPU y memoria para renderizar.
  • Descubrimiento de fuentes y sustitución en cada entorno de despliegue.
  • Integración de la biblioteca de códigos de barras y control de calidad de impresión.
  • Paquetes nativos y preocupaciones de despliegue para gráficos o integraciones visuales personalizadas.
  • Monitorización, reintentos y manejo de fallos.
  • Despliegue regional cuando usuarios o almacenes son globales.
  • Despliegues cada vez que cambia el diseño del documento.

Con gPdf, esa superficie se mueve hacia fuera: la aplicación envía un DocumentRequest o template_id + data, y el servicio se encarga del generador, el entorno en el edge, las fuentes, las primitivas de códigos de barras, la salida PDF/A y el empaquetado de factura electrónica. Es menos atractivo si quiere cada detalle en C#; más atractivo si la generación PDF debe ser una capa utilitaria llamable desde cualquier pila.

Tres concesiones que una API alojada debe responder honestamente

La mayoría de argumentos “biblioteca vs API” saltan las tres preguntas que un arquitecto .NET hace primero. Una comparación justa las responde en voz alta.

1. Adónde van los datos del documento. Esta página trata sobre todo de facturas, estados de cuenta y facturas electrónicas: documentos llenos de nombres, direcciones, identificadores fiscales e importes. Con QuestPDF esos bytes se construyen dentro de su proceso y nunca salen. La API pública de gPdf transmite los datos de la solicitud al servicio, pero el servicio es de retención cero: el JSON de la solicitud se mantiene en un isolate V8 de Cloudflare Workers solo durante la generación (típicamente unos 4 ms) y se libera al completar la respuesta; nunca se almacena, registra, muestrea ni usa para entrenar, y los registros operativos se limitan a estado HTTP y duración (seguridad, DPA). La residencia de datos UE / global y el despliegue empresarial local o privado reducen o cierran aún más la exposición. Aun así, mantener la generación dentro del proceso con cero configuración es una razón legítima, a veces decisiva, para que un equipo financiero o del sector público elija QuestPDF.

2. El modo de fallo. Una biblioteca no tiene un tercero que pueda caerse; la generación solo puede fallar en infraestructura que usted ya opera. Una API alojada añade una dependencia de disponibilidad que no controla. La forma correcta de adoptar gPdf es tratar las llamadas de generación como cualquier llamada externa: tiempo límite, reintento, cola y, si es posible, una alternativa en modo degradado. Si la generación de documentos está en una ruta síncrona crítica, compare “operarlo usted” con “depender de la disponibilidad de un proveedor”.

3. El perfil de latencia. La generación dentro del proceso es una llamada de función sin red. Una llamada alojada es una ida y vuelta de red. Para lotes y trabajos asíncronos es ruido. Para “el usuario hace clic y el PDF debe aparecer ahora”, dentro del proceso es estructuralmente más rápido. Los PoP en el edge de gPdf reducen el salto, pero sigue siendo TLS más una ida y vuelta; en QuestPDF es una llamada a método.

Nada de esto convierte a gPdf en la opción equivocada; define cuándo es la correcta: equipos cuyos datos de documento pueden salir del proceso, cuyos flujos toleran un salto de red y que prefieren depender de la disponibilidad de un proveedor antes que operar su propia flota de generación.

Modelo de licencia y precio

La página pública de licencias de QuestPDF dice que una licencia comercial solo es obligatoria para empresas con ingresos brutos anuales por encima de 1 millón USD. El nivel Community es gratuito, bajo términos MIT, para personas elegibles, proyectos de código abierto, organizaciones sin ánimo de lucro y empresas por debajo de ese umbral. La misma página pública enumera dos niveles comerciales perpetuos: Professional a 999 USD más impuestos locales para equipos de hasta 10 desarrolladores, y Enterprise a 2.999 USD más impuestos locales para toda la organización sin contar desarrolladores. Ambos incluyen un año de actualizaciones y proyectos, servidores y despliegues ilimitados; la licencia no expira para la última versión recibida.

El modelo de aplicación también es inusualmente ligero. La licencia se fija con una sola línea: QuestPDF.Settings.License = LicenseType.Community;. No hay clave de licencia, servidor de activación y, según la propia página de configuración de QuestPDF, no hay llamadas de red ni datos que salgan de la máquina. Es un modelo basado en confianza: usted elige el nivel para el que es elegible. No hay factura por documento del proveedor, y una licencia de pago corre en cualquier sitio, incluso totalmente sin conexión.

gPdf pone precio directamente al servicio de generación. El plan Basic público empieza en 5 USD/mes por 100.000 páginas, con exceso desde 0,00005 USD por página. Eso es una factura de proveedor, pero también elimina el proyecto separado de operar generación PDF: sin clúster de generación, sin ruta de despliegue NuGet, sin grupo regional precalentado, sin paquete de fuentes por aplicación y sin servicio PDF que parchear.

Así que la comparación de coste no es “999 USD vs 5 USD”; la licencia es una línea pequeña. La comparación real es:

Total QuestPDF = licencia (pago único) + su hosting + tiempo de ingeniería + guardias
Total gPdf     = factura por páginas (infraestructura, fuentes, escala y presencia en el edge incluidas)

Con el cálculo público por página, el exceso de gPdf cuesta 0,05 USD por 1.000 páginas (50 USD por 1 millón, 500 USD por 10 millones). Una licencia Enterprise única de 2.999 USD solo empata contra esa factura cerca de los 60 millones de páginas, y esa cifra ignora el hosting y los meses de ingeniería de QuestPDF, que empujan el cruce real mucho más a favor de gPdf salvo que ya opere la infraestructura de generación a muy bajo coste. Regla práctica: si tendría que construir y dotar de personal un servicio de generación solo para usar la biblioteca, gPdf suele ganar en coste total mucho antes de que la factura por página alcance la licencia; si esa infraestructura ya existe y casi no le cuesta, la licencia perpetua gana a escala.

Flujo de desarrollo: C# fluido vs plantillas

La API fluida de QuestPDF encaja bien cuando los desarrolladores controlan la forma del documento. Tipado fuerte, cadenas de métodos, componentes C# reutilizables, refactorizaciones del IDE y Companion App tienen sentido cuando el PDF forma parte del código de la aplicación.

gPdf encaja con otro flujo. Los desarrolladores aún pueden escribir JSON directamente, pero los sistemas de producción suelen moverse hacia plantillas. Un diseñador, operador o ingeniero ajusta el diseño en gPdf Studio. El diseño aprobado pasa a ser una plantilla, y el servidor sigue generando con template_id + data.

Esa diferencia importa cuando el documento cambia a menudo. Si cambia una etiqueta de transportista, factura, albarán o estado de cuenta, gPdf puede mantener estable el entorno de ejecución y mover solo la plantilla. Con QuestPDF, el diseño es código C#, así que la ruta normal es cambio de código, pruebas, compilación, despliegue y plan de reversión.

Ningún flujo es universalmente mejor: QuestPDF optimiza para desarrolladores C# que quieren el documento como código; gPdf para plantillas operativas compartidas entre sistemas.

Cumplimiento: ambos productos van en serio

No es una comparación donde gPdf gana diciendo que el competidor no tiene funciones de cumplimiento. El material público actual de QuestPDF enumera un soporte fuerte de estándares, incluidos PDF/A, PDF/UA-1 y facturación electrónica EN 16931 mediante un ejemplo ZUGFeRD 2.1 / Factur-X basado en el estándar UN/CEFACT Cross Industry Invoice (CII). Ese ejemplo fija PdfA = true, incrusta el archivo factur-x.xml con AddAttachment(), extiende el documento con metadatos XMP y valida el resultado con veraPDF (para PDF/A-3b) y Mustang Project (para ZUGFeRD). Es una receta completa y honesta, y el flujo deja cada paso bajo su control.

gPdf empaqueta los mismos estándares como contrato de API. JSON Render expone seis perfiles PDF/A (1b, 2b, 3b, 4, 2u, 3u) más PDF/UA-1 mediante settings.profile, Template Render reutiliza el mismo modelo de documento y E-Invoice Render expone un punto de conexión dedicado POST /api/v1/e-invoice/render que produce paquetes Factur-X / ZUGFeRD PDF/A-3b con XML EN 16931 CII incrustado. La diferencia frente a la receta de QuestPDF está en lo que el servicio hace por usted: gPdf ejecuta la validación PDF/A-3b y de factura electrónica en servidor, soporta entrega síncrona directa o por objeto consultado, y ofrece residencia UE o global como opciones de la solicitud, no como pasos que usted monta y opera. QuestPDF encaja cuando esa validación debe vivir dentro de su proceso .NET; gPdf cuando debe ser un contrato alojado compartido por muchos sistemas.

Fuentes y códigos de barras: el verdadero comparativo es el esfuerzo de integración

QuestPDF tiene un modelo de fuentes capaz. Incluye Lato 2.015 por defecto, carga automáticamente fuentes del sistema y del directorio de despliegue, permite registrar fuentes personalizadas con FontManager y soporta cadenas de reserva. Eso da control a los desarrolladores. Pero la misma documentación es franca sobre el problema: en la mayoría de despliegues en la nube hay pocas fuentes o ninguna, lo que puede provocar resultados inesperados; recomienda desactivar fuentes del entorno y registrar explícitamente lo necesario. Dicho de otro modo, en un entorno de contenedor o sin servidor el entorno de fuentes es suyo para planificar, empaquetar y probar; un glifo ausente se convierte en carácter de reemplazo o, si activa CheckIfAllTextGlyphsAreAvailable, en una excepción.

gPdf hace que las fuentes formen parte de la frontera del servicio. El generador empaqueta un conjunto multiescritura: latín, griego, cirílico, árabe, hebreo, bengalí, tamil, tailandés, vietnamita, monoespaciado y CJK con sustitución por escritura a Noto KR / JP / SC. Resuelve elecciones silenciosas mediante selección automática implícita y elecciones explícitas con prefer o strict. Los llamadores no envían una fuente CJK, no registran archivos Noto en una aplicación .NET ni ajustan la sustitución por destino de despliegue. Envían datos; el servicio se encarga del entorno de fuentes, igual en cada región.

La comparación de códigos de barras tiene una forma parecida. La documentación de QuestPDF muestra un enfoque sólido usando ZXing.Net convertido en SVG vectorial, y señala explícitamente que ZXing.Net no está incluido en el paquete QuestPDF: se instala desde NuGet y se cablea:

// QuestPDF: add the separate ZXing.Net package, encode, render to SVG, embed.
//   dotnet add package ZXing.Net
var writer = new ZXing.BarcodeWriterSvg {
    Format  = ZXing.BarcodeFormat.CODE_128,
    Options = new ZXing.Common.EncodingOptions { Width = 320, Height = 80 }
};
string svg = writer.Write("INV-2026-001").Content;
container.Svg(svg);
// GS1-128 with Application Identifiers and FNC1 framing is hand-wired on top.

Con gPdf, la generación de códigos de barras es un elemento del esquema de primera clase. La solicitud declara formato, contenido, tamaño físico y una línea legible opcional; los formatos GS1 son nativos, así que los identificadores de aplicación van directo en content:

{
  "type": "barcode",
  "format": "gs1_128",
  "content": "(01)00012345678905(21)SN12345",
  "x": 12, "y": 60, "width": 80, "height": 18,
  "barcode_text": { "enabled": true, "position": "bottom" }
}

Para una sola aplicación .NET, instalar ZXing.Net y probar la salida puede ser sencillo. Para muchos servicios y plantillas, especialmente cargas logísticas y de venta minorista que necesitan GS1-128, SSCC, GTIN, GS1 DataMatrix o GS1 QR con la línea de interpretación legible, llevar el comportamiento de códigos de barras a la API documental es más fácil de mantener que reimplementar el mismo cableado ZXing en cada servicio.

Donde QuestPDF gana claramente

Además de ejecutarse sin conexión, mantener los datos del documento dentro de su perímetro y servir cuando el código PDF forma parte del producto, es decir, cuando un equipo necesita inspeccionar, extender o poseer la ruta de generación, QuestPDF tiene dos áreas de capacidad claramente fuera del alcance de gPdf:

  • Operaciones sobre PDF existentes. QuestPDF puede cargar archivos existentes y fusionarlos, seleccionar / reordenar / invertir / filtrar páginas, aplicar superposiciones, añadir adjuntos, definir metadatos XMP, linearizar para entrega web y cifrar y descifrar con seguridad de 40/128/256 bits. gPdf puede proteger con contraseña y permisos los PDF que genera, pero no abre, fusiona ni descifra archivos que no creó.
  • Gráficos, mapas y visualizaciones personalizadas. QuestPDF integra bibliotecas de gráficos (ScottPlot, LiveCharts, Microcharts), incrusta mapas de Mapbox y expone un lienzo SkiaSharp para dibujo 2D arbitrario. gPdf puede dibujar arte vectorial con el elemento path (datos de ruta SVG) o incrustar un gráfico SVG / PNG producido antes, pero no tiene motor de gráficos, mapas ni lienzo integrados; si la visualización de datos es central, esa herramienta vive mejor con QuestPDF.

Donde gPdf gana claramente

gPdf gana cuando una organización no quiere que cada equipo de producto opere su propio servicio PDF: pilas políglotas, flujos globales y sistemas ERP / OMS / WMS / comercio electrónico / fintech / venta de entradas que generan documentos desde datos estructurados, con plantillas que cambian de forma independiente al código. En esos entornos, una biblioteca local suele empezar barata y convertirse en una flota: un servicio por lenguaje, una ruta de despliegue por región, un plan de fuentes por contenedor, una suite de regresiones de códigos de barras por equipo. gPdf convierte esa flota en un contrato HTTP.

La arquitectura sin servidor deja la frontera muy clara. En AWS Lambda, Cloud Run o Azure Functions, QuestPDF sigue corriendo dentro de la aplicación: su equipo empaqueta el entorno .NET, fuentes, dependencias nativas y suficiente CPU / memoria para picos de trabajo PDF, y se queda con los arranques en frío. gPdf ya es el servicio de generación: la función hace POST de una pequeña solicitud template_id + data hacia el edge y recibe bytes PDF, sin generador que calentar ni proceso regional que escalar.

Forma de migración

La migración de QuestPDF a gPdf no es una reescritura línea por línea. Es un cambio de frontera: el código C# que construye el PDF pasa a ser una solicitud JSON de documento o una plantilla publicada.

Antes / después — la llamada C# de construcción de documento se reduce a un HTTP POST (haga clic para expandir)
- // Before: generate the PDF inside a .NET application.
- Document.Create(container =>
- {
-     container.Page(page =>
-     {
-         page.Size(PageSizes.A4);
-         page.Margin(30);
-         page.Header().Text("Invoice").FontSize(24).SemiBold();
-         page.Content().Column(column =>
-         {
-             column.Item().Text($"Invoice number: {invoice.Number}");
-             column.Item().Text($"Total: {invoice.Total:C}");
-         });
-     });
- })
- .GeneratePdf("invoice.pdf");
+
+ // After: render through the shared gPdf template from C#.
+ using System.Net.Http.Headers;
+ using System.Net.Http.Json;
+
+ using var client = new HttpClient();
+ client.DefaultRequestHeaders.Authorization =
+     new AuthenticationHeaderValue("Bearer", key);
+
+ var response = await client.PostAsJsonAsync(
+     "https://api.gpdf.com/api/v1/template-render",
+     new {
+         template_id = "invoice-v2",
+         data = new {
+             invoice_number = invoice.Number,
+             total = invoice.Total,
+             currency = invoice.Currency
+         }
+     });
+
+ response.EnsureSuccessStatusCode();
+ byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();

Después de mover esa frontera, los cambios de diseño pueden ser revisiones de plantilla en vez de despliegues de aplicación. La aplicación sigue controlando los datos empresariales y las decisiones de flujo; gPdf se encarga de la generación.

Nota de precios y fuentes

La información de QuestPDF en esta página se verificó el 2026-06-02 contra fuentes oficiales de QuestPDF: License and Pricing, License configuration, Features Overview, Companion App features, Barcodes, Font management y ZUGFeRD example. Las páginas de precio y funciones pueden cambiar; los equipos de compras deberían volver a revisar la página del proveedor antes de tomar una decisión. QuestPDF y las marcas relacionadas pertenecen a sus respectivos propietarios, y esta comparación no está respaldada por ellos.

Escenarios relacionados de generación PDF

Si está comparando QuestPDF con gPdf, también puede revisar cuándo conviene una API de JSON a PDF, una API de PDF de factura, una API de etiquetas de envío, códigos de barras GS1-128, PDF/A, Factur-X o ZUGFeRD como capacidades compartidas, en lugar de operar una biblioteca y su infraestructura en cada aplicación.

FAQ

¿gPdf reemplaza a QuestPDF?

No. gPdf reemplaza la necesidad de operar un servicio de generación PDF para documentos empresariales estructurados. QuestPDF sigue siendo una biblioteca C# local muy sólida cuando el PDF debe generarse dentro de la aplicación.

¿QuestPDF es gratis?

La página pública de licencias de QuestPDF dice que el nivel Community es gratuito bajo términos MIT para personas elegibles, proyectos de código abierto, organizaciones sin ánimo de lucro y empresas con ingresos brutos anuales por debajo de 1 millón USD. Las empresas por encima de ese umbral necesitan una licencia comercial perpetua: Professional a 999 USD más impuestos locales para hasta 10 desarrolladores, o Enterprise a 2.999 USD más impuestos locales para toda la organización, cada una con un año de actualizaciones.

¿Puede gPdf generar gráficos o mapas como QuestPDF?

No como motor integrado. QuestPDF integra bibliotecas de gráficos (ScottPlot, LiveCharts, Microcharts), mapas de Mapbox y un lienzo SkiaSharp que dibuja dentro del documento. gPdf aún puede dibujar gráficos vectoriales con el elemento path (que acepta datos de ruta SVG) y formas, o incrustar un SVG / PNG producido por cualquier biblioteca de gráficos como image. La diferencia es que QuestPDF calcula y dibuja el gráfico dentro del proceso, mientras que con gPdf usted produce el arte del gráfico y gPdf lo coloca. Si los gráficos basados en datos o los mapas son centrales para el documento, QuestPDF encaja mejor.

¿Qué producto es más barato?

Depende de la frontera. QuestPDF puede ser más barato para equipos .NET que cumplen los términos Community o que ya operan la infraestructura de generación. gPdf puede ser más barato cuando la alternativa es construir, alojar y mantener un servicio PDF entre productos o regiones.

¿gPdf almacena o registra los datos de mi documento?

No. El JSON que usted envía y el PDF que devuelve gPdf no se almacenan. Cada solicitud se genera dentro de un único isolate V8 de Cloudflare Workers, se mantiene en memoria solo durante la generación, normalmente unos 4 ms, y se libera al completar el flujo de respuesta; gPdf no retiene, registra, muestrea ni usa contenido DocumentRequest para entrenar modelos. Los registros operativos guardan solo estado HTTP y duración durante 30 días, sin cuerpos de solicitud. Consulte la política de seguridad, la política de privacidad y el DPA. Para cargas que no pueden transmitir datos en absoluto, el despliegue local o privado los mantiene dentro de su perímetro.

¿QuestPDF puede ejecutarse sin acceso a internet?

Sí. La página de configuración de licencias de QuestPDF dice que no hay clave de licencia ni servidor de activación, y que los cálculos se realizan localmente. Es una de las razones más claras para elegir QuestPDF.

¿Puede gPdf generar diseños arbitrarios de QuestPDF en C#?

No. gPdf no ejecuta código de diseño C#. Una migración implica convertir la forma del documento en una solicitud JSON de gPdf o en una plantilla guardada de gPdf.