Ghostscript GPL vs IronPDF para software de facturación VeriFactu: riesgo copyleft en España
Los ISVs españoles que desarrollan software de facturación certificable bajo el régimen VeriFactu se enfrentan a una evaluación de componentes que va mucho más allá de la funcionalidad técnica. La Agencia Estatal de Administración Tributaria (AEAT) impone penalizaciones de hasta 150.000 €/año a los proveedores de software de facturación no conforme. En ese contexto, la licencia copyleft de Ghostscript GPL —la misma AGPL que rige iText— añade una capa de riesgo legal que convierte una decisión técnica en una decisión de negocio de primer orden.
Este artículo analiza Ghostscript GPL e IronPDF desde la perspectiva del ISV español que necesita generar facturas con el sello VERI*FACTU, la leyenda Factura verificable en la sede electrónica de la AEAT, firmas PAdES para TicketBAI, y documentos Facturae 3.2.2 para FACe. La elección del componente PDF determina no solo la arquitectura, sino la exposición regulatoria del producto.
El marco VeriFactu y la obligación del proveedor de software
VeriFactu (postponido a 1 de enero de 2027 para el Impuesto sobre Sociedades y 1 de julio de 2027 para el resto de contribuyentes, según RDL 15/2025) establece que los proveedores de software de facturación —no solo los usuarios— son objeto de la penalización. Un ISV que distribuya software de facturación no conforme se expone a sanciones de hasta 150.000 €/año independientemente de si sus clientes son sancionados.
Esta realidad convierte la evaluación de componentes PDF en un análisis de riesgo empresarial:
- El componente PDF genera las facturas que deben incluir el sello
VERI*FACTUy el código QR de verificación AEAT - El componente PDF firma los documentos con PAdES bajo eIDAS para TicketBAI en las tres provincias vascas (Bizkaia/BATUZ, Gipuzkoa, Araba)
- El componente PDF produce los Facturae 3.2.2 embebidos en PDF/A-3 para la plataforma FACe (B2G)
- El componente PDF gestiona el archivado conforme a LOPDGDD y los requisitos de retención fiscal
Añadir Ghostscript GPL a este stack introduce la licencia AGPL sobre el componente más sensible del producto.
La trampa copyleft en software de facturación certificable
La AGPL (Affero General Public License) exige que cualquier software que use Ghostscript GPL —y que se distribuya o se ofrezca como servicio de red— libere su código fuente completo bajo los mismos términos copyleft. Para un ISV que ha invertido años en desarrollar lógica de negocio propietaria de facturación, esto significa:
Escenario A — Distribución de software (ERP/POS local): Si el ISV distribuye su software a clientes, está obligado a publicar todo el código fuente de la aplicación. Las mismas rutinas que implementan la generación de huella para VeriFactu, la cadena de firmado XAdES para TicketBAI, o los algoritmos de cálculo de IVA quedan expuestas bajo la AGPL.
Escenario B — SaaS/servicio de red: La AGPL cierra expresamente la laguna "ASP loophole": incluso si el ISV no distribuye binarios sino que presta el servicio de facturación en la nube, sigue obligado a liberar el código fuente bajo demanda del usuario. Un SaaS de facturación VeriFactu construido sobre Ghostscript GPL es incompatible con un modelo de negocio propietario.
Escenario C — Licencia comercial Artifex: Ghostscript GPL ofrece una licencia comercial pagada de Artifex Software que elimina la obligación copyleft. Sin embargo, su coste por servidor o por despliegue supera significativamente el de IronPDF para volúmenes de producción, y la negociación con Artifex añade incertidumbre contractual que un ISV bajo presión de cumplimiento regulatorio puede no querer.
La intersección VeriFactu × AGPL es particularmente aguda porque el riesgo copyleft y el riesgo regulatorio se materializan sobre el mismo componente: el generador de documentos de facturación.
Ghostscript GPL: arquitectura y limitaciones técnicas para facturación española
Ghostscript GPL es un intérprete de PostScript y PDF maduro con décadas de historia. Su integración en C# requiere:
// Arquitectura Ghostscript GPL desde C#
// Requiere gsdll32.dll / gsdll64.dll instalado externamente
using Ghostscript.NET;
using Ghostscript.NET.Processor;
GhostscriptVersionInfo gvi = new GhostscriptVersionInfo("gsdll64.dll");
GhostscriptProcessor processor = new GhostscriptProcessor();
List<string> switches = new List<string>
{
"-dNOPAUSE",
"-dBATCH",
"-dSAFER",
"-sDEVICE=pdfwrite",
"-sOutputFile=factura_output.pdf",
"factura_input.ps"
};
processor.Process(switches.ToArray());
// Arquitectura Ghostscript GPL desde C#
// Requiere gsdll32.dll / gsdll64.dll instalado externamente
using Ghostscript.NET;
using Ghostscript.NET.Processor;
GhostscriptVersionInfo gvi = new GhostscriptVersionInfo("gsdll64.dll");
GhostscriptProcessor processor = new GhostscriptProcessor();
List<string> switches = new List<string>
{
"-dNOPAUSE",
"-dBATCH",
"-dSAFER",
"-sDEVICE=pdfwrite",
"-sOutputFile=factura_output.pdf",
"factura_input.ps"
};
processor.Process(switches.ToArray());
Imports Ghostscript.NET
Imports Ghostscript.NET.Processor
Dim gvi As New GhostscriptVersionInfo("gsdll64.dll")
Dim processor As New GhostscriptProcessor()
Dim switches As New List(Of String) From {
"-dNOPAUSE",
"-dBATCH",
"-dSAFER",
"-sDEVICE=pdfwrite",
"-sOutputFile=factura_output.pdf",
"factura_input.ps"
}
processor.Process(switches.ToArray())
Para las obligaciones específicas del mercado español, Ghostscript GPL presenta limitaciones estructurales:
| Requisito español | Ghostscript GPL | IronPDF |
|---|---|---|
| *Generación de factura con `VERIFACTU`** | No nativo — requiere capa HTML→PS→PDF | Directo vía ChromePdfRenderer |
Leyenda Factura verificable en la sede electrónica de la AEAT |
Manipulación manual de texto PS | Plantilla HTML con literales preservados |
| Código QR AEAT en factura | Sin soporte QR nativo | Integración con IronQR / imagen embebida |
| PAdES bajo eIDAS (TicketBAI) | Sin soporte de firma digital | PdfSignature con certificado FNMT/ACCV |
| Facturae 3.2.2 en PDF/A-3 | Conversión PDF/A limitada | SaveAsPdfA3() con XML embebido |
| XAdES para Bizkaia/BATUZ | Fuera del alcance | Integración via biblioteca XAdES externa |
| HTML a PDF nativo | No soportado (requiere PS intermedio) | Motor Chromium integrado |
| Licencia para ISV | AGPL viral o Artifex comercial costoso | Comercial predecible por despliegue |
La ausencia de HTML a PDF nativo es especialmente problemática: las plantillas de factura modernas se diseñan en HTML/CSS para que el área contable no técnica pueda mantenerlas. Ghostscript GPL no puede renderizar HTML directamente; requiere conversión previa a PostScript mediante herramientas adicionales, lo que añade dependencias y puntos de fallo en el pipeline.
IronPDF: generación de facturas VeriFactu con componente comercial
IronPDF es una biblioteca PDF nativa de .NET con licencia comercial predecible que elimina tanto la complejidad copyleft como las dependencias binarias externas.
Factura con sello VeriFactu y QR de verificación AEAT
// NuGet: Install-Package IronPdf
using IronPdf;
// Plantilla HTML de factura con los literales VeriFactu obligatorios
string plantillaFactura = @"
<!DOCTYPE html>
<html lang='es'>
<head>
<meta charset='UTF-8'>
<style>
body { font-family: Arial, sans-serif; }
.verifactu-block { border: 2px solid #000; padding: 10px; margin-top: 20px; }
.qr-code { float: right; }
</style>
</head>
<body>
<h1>FACTURA</h1>
<p>Número: {{NumeroFactura}}</p>
<p>Fecha: {{FechaFactura}}</p>
<p>NIF Emisor: {{NifEmisor}}</p>
<div class='verifactu-block'>
<p><strong>VERI*FACTU</strong></p>
<p>Factura verificable en la sede electrónica de la AEAT</p>
<p>Huella: {{HuellaEncadenada}}</p>
<img class='qr-code' src='data:image/png;base64,{{QRCodeBase64}}'
alt='Código QR AEAT' width='100' height='100' />
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(plantillaFactura
.Replace("{{NumeroFactura}}", "FAC-2027-001234")
.Replace("{{FechaFactura}}", "2027-01-15")
.Replace("{{NifEmisor}}", "B12345678")
.Replace("{{HuellaEncadenada}}", huellaVeriFactu)
.Replace("{{QRCodeBase64}}", qrBase64));
pdf.SaveAs("factura_verifactu.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;
// Plantilla HTML de factura con los literales VeriFactu obligatorios
string plantillaFactura = @"
<!DOCTYPE html>
<html lang='es'>
<head>
<meta charset='UTF-8'>
<style>
body { font-family: Arial, sans-serif; }
.verifactu-block { border: 2px solid #000; padding: 10px; margin-top: 20px; }
.qr-code { float: right; }
</style>
</head>
<body>
<h1>FACTURA</h1>
<p>Número: {{NumeroFactura}}</p>
<p>Fecha: {{FechaFactura}}</p>
<p>NIF Emisor: {{NifEmisor}}</p>
<div class='verifactu-block'>
<p><strong>VERI*FACTU</strong></p>
<p>Factura verificable en la sede electrónica de la AEAT</p>
<p>Huella: {{HuellaEncadenada}}</p>
<img class='qr-code' src='data:image/png;base64,{{QRCodeBase64}}'
alt='Código QR AEAT' width='100' height='100' />
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(plantillaFactura
.Replace("{{NumeroFactura}}", "FAC-2027-001234")
.Replace("{{FechaFactura}}", "2027-01-15")
.Replace("{{NifEmisor}}", "B12345678")
.Replace("{{HuellaEncadenada}}", huellaVeriFactu)
.Replace("{{QRCodeBase64}}", qrBase64));
pdf.SaveAs("factura_verifactu.pdf");
Imports IronPdf
' Plantilla HTML de factura con los literales VeriFactu obligatorios
Dim plantillaFactura As String = "
<!DOCTYPE html>
<html lang='es'>
<head>
<meta charset='UTF-8'>
<style>
body { font-family: Arial, sans-serif; }
.verifactu-block { border: 2px solid #000; padding: 10px; margin-top: 20px; }
.qr-code { float: right; }
</style>
</head>
<body>
<h1>FACTURA</h1>
<p>Número: {{NumeroFactura}}</p>
<p>Fecha: {{FechaFactura}}</p>
<p>NIF Emisor: {{NifEmisor}}</p>
<div class='verifactu-block'>
<p><strong>VERI*FACTU</strong></p>
<p>Factura verificable en la sede electrónica de la AEAT</p>
<p>Huella: {{HuellaEncadenada}}</p>
<img class='qr-code' src='data:image/png;base64,{{QRCodeBase64}}'
alt='Código QR AEAT' width='100' height='100' />
</div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
Dim pdf = renderer.RenderHtmlAsPdf(plantillaFactura _
.Replace("{{NumeroFactura}}", "FAC-2027-001234") _
.Replace("{{FechaFactura}}", "2027-01-15") _
.Replace("{{NifEmisor}}", "B12345678") _
.Replace("{{HuellaEncadenada}}", huellaVeriFactu) _
.Replace("{{QRCodeBase64}}", qrBase64))
pdf.SaveAs("factura_verifactu.pdf")
Firmado PAdES con certificado FNMT para TicketBAI
Las tres provincias vascas (Bizkaia/BATUZ, Gipuzkoa, Araba) requieren facturas firmadas con XAdES. Para el formato PDF de acompañamiento, PAdES bajo eIDAS es el estándar aplicable, con certificados FNMT o de otra CA acreditada:
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Cargar certificado FNMT (Fábrica Nacional de Moneda y Timbre)
// o certificado de entidad acreditada bajo eIDAS
var certificado = new X509Certificate2(
"certificado_fnmt.pfx",
"contraseña_certificado",
X509KeyStorageFlags.Exportable);
var pdf = PdfDocument.FromFile("factura_verifactu.pdf");
// Firma PAdES conforme a eIDAS
var firma = new PdfSignature(certificado);
firma.SigningContact = "facturacion@empresa.es";
firma.SigningLocation = "España";
firma.SigningReason = "Factura electrónica VeriFactu - TicketBAI";
pdf.Sign(firma);
pdf.SaveAs("factura_firmada_ticketbai.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Cargar certificado FNMT (Fábrica Nacional de Moneda y Timbre)
// o certificado de entidad acreditada bajo eIDAS
var certificado = new X509Certificate2(
"certificado_fnmt.pfx",
"contraseña_certificado",
X509KeyStorageFlags.Exportable);
var pdf = PdfDocument.FromFile("factura_verifactu.pdf");
// Firma PAdES conforme a eIDAS
var firma = new PdfSignature(certificado);
firma.SigningContact = "facturacion@empresa.es";
firma.SigningLocation = "España";
firma.SigningReason = "Factura electrónica VeriFactu - TicketBAI";
pdf.Sign(firma);
pdf.SaveAs("factura_firmada_ticketbai.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Cargar certificado FNMT (Fábrica Nacional de Moneda y Timbre)
' o certificado de entidad acreditada bajo eIDAS
Dim certificado As New X509Certificate2(
"certificado_fnmt.pfx",
"contraseña_certificado",
X509KeyStorageFlags.Exportable)
Dim pdf As PdfDocument = PdfDocument.FromFile("factura_verifactu.pdf")
' Firma PAdES conforme a eIDAS
Dim firma As New PdfSignature(certificado)
firma.SigningContact = "facturacion@empresa.es"
firma.SigningLocation = "España"
firma.SigningReason = "Factura electrónica VeriFactu - TicketBAI"
pdf.Sign(firma)
pdf.SaveAs("factura_firmada_ticketbai.pdf")
Facturae 3.2.2 embebido en PDF/A-3 para FACe
La plataforma FACe (B2G) requiere Facturae XML adjunto a un contenedor PDF/A-3 conforme con EN 16931 y la implementación española CIUS-ES:
using IronPdf;
using System.IO;
var pdf = PdfDocument.FromFile("factura_base.pdf");
// Adjuntar Facturae XML como archivo embebido (PDF/A-3 permite adjuntos)
byte[] facturaeXml = File.ReadAllBytes("factura_facturae_3_2_2.xml");
pdf.EmbedFile(facturaeXml, "factura.xml", "application/xml");
// Convertir a PDF/A-3 para cumplimiento FACe / Crea y Crece
pdf.SaveAsPdfA("factura_face_pdfa3.pdf", PdfAVersions.PdfA3);
using IronPdf;
using System.IO;
var pdf = PdfDocument.FromFile("factura_base.pdf");
// Adjuntar Facturae XML como archivo embebido (PDF/A-3 permite adjuntos)
byte[] facturaeXml = File.ReadAllBytes("factura_facturae_3_2_2.xml");
pdf.EmbedFile(facturaeXml, "factura.xml", "application/xml");
// Convertir a PDF/A-3 para cumplimiento FACe / Crea y Crece
pdf.SaveAsPdfA("factura_face_pdfa3.pdf", PdfAVersions.PdfA3);
Imports IronPdf
Imports System.IO
Dim pdf = PdfDocument.FromFile("factura_base.pdf")
' Adjuntar Facturae XML como archivo embebido (PDF/A-3 permite adjuntos)
Dim facturaeXml As Byte() = File.ReadAllBytes("factura_facturae_3_2_2.xml")
pdf.EmbedFile(facturaeXml, "factura.xml", "application/xml")
' Convertir a PDF/A-3 para cumplimiento FACe / Crea y Crece
pdf.SaveAsPdfA("factura_face_pdfa3.pdf", PdfAVersions.PdfA3)
Diferencias de integración en el entorno .NET
Más allá del riesgo regulatorio, la diferencia arquitectónica entre Ghostscript GPL e IronPDF es determinante para la productividad del equipo:
| Aspecto | Ghostscript GPL | IronPDF |
|---|---|---|
| API | Conmutadores de cadena de texto, generación de procesos | API .NET tipificada, IntelliSense |
| HTML a PDF | No soportado nativamente | Motor Chromium integrado |
| Firma digital | Fuera del alcance | PAdES / firma digital nativa |
| Gestión de errores | Parseo de stderr | Excepciones .NET estándar |
| Dependencias externas | gsdll32.dll / gsdll64.dll | Paquete NuGet autónomo |
| Thread-safety | Solo aislamiento de procesos | Thread-safe por diseño |
| Soporte async | Basado en procesos | async/await nativo |
| Compatibilidad .NET | Soporte limitado | .NET 6/7/8/9 completo |
| Despliegue | Configurar PATH + DLL | Solo referencia NuGet |
| Licencia | AGPL (copyleft viral) o Artifex comercial | Comercial predecible |
La complejidad de la interfaz de línea de comandos de Ghostscript GPL es especialmente problemática en pipelines de facturación de alto volumen donde se generan miles de documentos por hora: cada operación genera un proceso separado, añadiendo latencia y complejidad de gestión de recursos.
// Patrón Ghostscript GPL: frágil, sin IntelliSense, errores en stderr
List<string> switches = new List<string>
{
"-dNOPAUSE", "-dBATCH", "-dSAFER",
"-sDEVICE=pdfwrite",
$"-sOutputFile={outputPdf}"
};
processor.Process(switches.ToArray());
// ¿Funcionó? Hay que parsear stderr...
// Patrón IronPDF: tipado, excepciones estándar, IntelliSense
var pdf = renderer.RenderHtmlAsPdf(htmlFactura);
pdf.SaveAs(outputPdf); // Excepción .NET si falla
// Patrón Ghostscript GPL: frágil, sin IntelliSense, errores en stderr
List<string> switches = new List<string>
{
"-dNOPAUSE", "-dBATCH", "-dSAFER",
"-sDEVICE=pdfwrite",
$"-sOutputFile={outputPdf}"
};
processor.Process(switches.ToArray());
// ¿Funcionó? Hay que parsear stderr...
// Patrón IronPDF: tipado, excepciones estándar, IntelliSense
var pdf = renderer.RenderHtmlAsPdf(htmlFactura);
pdf.SaveAs(outputPdf); // Excepción .NET si falla
' Patrón Ghostscript GPL: frágil, sin IntelliSense, errores en stderr
Dim switches As New List(Of String) From {
"-dNOPAUSE", "-dBATCH", "-dSAFER",
"-sDEVICE=pdfwrite",
$"-sOutputFile={outputPdf}"
}
processor.Process(switches.ToArray())
' ¿Funcionó? Hay que parsear stderr...
' Patrón IronPDF: tipado, excepciones estándar, IntelliSense
Dim pdf = renderer.RenderHtmlAsPdf(htmlFactura)
pdf.SaveAs(outputPdf) ' Excepción .NET si falla
Mapeo de operaciones equivalentes
Para equipos que evalúan la transición, esta tabla relaciona operaciones comunes:
| Operación | Ghostscript GPL | IronPDF |
|---|---|---|
GhostscriptProcessor |
Generación de procesos | PdfDocument + métodos |
GhostscriptRasterizer |
Rasterización página a página | pdf.ToBitmap() / RasterizeToImageFiles() |
-sDEVICE=pdfwrite |
Varios métodos PDF | PdfDocument |
-sDEVICE=png16m |
Salida PNG | RasterizeToImageFiles("*.png") |
-sOutputFile=X |
Archivo de salida | SaveAs("X") |
-r300 |
Parámetro DPI | Parámetro DPI en métodos |
-sOwnerPassword=X |
Cifrado | pdf.SecuritySettings.OwnerPassword |
| Sin equivalente | Firma PAdES | PdfSignature con eIDAS |
| Sin equivalente | PDF/A-3 con adjuntos | SaveAsPdfA3() + EmbedFile() |
Protección de datos LOPDGDD en el pipeline de facturación
Las facturas contienen datos personales sujetos a la LOPDGDD (la adaptación española del RGPD) y a la supervisión de la AEPD. El pipeline de generación de PDF debe garantizar:
- Cifrado en reposo de los documentos generados
- Control de acceso por roles a los PDF firmados
- Registros de auditoría de las operaciones de firma (quién firmó, cuándo, con qué certificado)
- Retención según plazos fiscales y destrucción segura al vencimiento
IronPDF proporciona SecuritySettings para cifrado y PdfSignature con trazabilidad; la integración de ambos en un pipeline LOPDGDD-conforme es más directa que con la gestión de procesos externos de Ghostscript GPL.
Cuándo usar Ghostscript GPL y cuándo IronPDF en el mercado español
Ghostscript GPL puede ser adecuado cuando:
- El proyecto es de código abierto y no hay objeción a publicar el código fuente bajo AGPL
- No se requiere HTML a PDF: el pipeline trabaja exclusivamente con PostScript o PDF existentes
- No se emiten facturas bajo VeriFactu, TicketBAI o Facturae; el procesamiento PDF es puramente interno
- Se dispone de licencia comercial Artifex y la inversión adicional está justificada
IronPDF es la elección apropiada para ISVs españoles cuando:
- El producto incluye software de facturación sujeto al régimen VeriFactu/TicketBAI/Facturae
- Se requiere HTML a PDF para plantillas de factura editables por el equipo contable
- La firma PAdES o la generación de documentos firmados eIDAS forma parte del pipeline
- El modelo de negocio es propietario (SaaS o distribución de software) y la AGPL es incompatible
- Se necesita threading seguro para generación de facturas de alto volumen (SII: miles de facturas en tiempo real)
Evaluación de la complejidad de transición
Para ISVs que ya usan Ghostscript GPL y evalúan la migración bajo presión de cumplimiento VeriFactu:
| Operación | Complejidad de migración |
|---|---|
| PDF a imágenes | Baja |
| Fusionar PDFs | Baja |
| Comprimir PDF | Baja |
| PostScript a PDF | Media |
| Optimización PDF | Baja |
| Cifrado/protección | Media |
| Conversión PDF/A | Baja |
| HTML a PDF (nuevo) | Baja — funcionalidad nueva, no migración |
| Firma PAdES (nuevo) | Media — certificado + integración eIDAS |
El mayor riesgo en la migración no es técnico sino cronológico: si el ISV necesita certificar su software para VeriFactu antes de enero de 2027, la migración a un componente con soporte nativo de PDF/A-3, firma digital y HTML a PDF reduce el trabajo de integración respecto a construir estas capacidades sobre Ghostscript GPL.
Conclusión
Para un ISV español que construye software de facturación bajo el régimen VeriFactu, la comparación entre Ghostscript GPL e IronPDF no es solo una evaluación técnica: es una evaluación de riesgo regulatorio. La AGPL de Ghostscript GPL impone la divulgación del código fuente sobre el componente que genera las facturas con VERI*FACTU, firma los documentos para TicketBAI bajo eIDAS con certificados FNMT, y produce los Facturae 3.2.2 para FACe.
IronPDF ofrece una alternativa nativa .NET con licencia comercial predecible, HTML a PDF vía Chromium, firma PAdES, soporte PDF/A-3 y threading seguro para volúmenes compatibles con el SII. La ausencia de la obligación copyleft simplifica directamente el análisis de cumplimiento VeriFactu del ISV.
Evalúe IronPDF con una prueba sin coste y consulte la documentación en español para verificar la compatibilidad con su arquitectura de facturación.
Preguntas Frecuentes
¿Por qué Ghostscript GPL representa un riesgo específico para ISVs de facturación españoles?
Ghostscript GPL usa licencia AGPL, que obliga a publicar el código fuente si se distribuye el software o se presta como servicio. En España, esta obligación se intersecta con VeriFactu (RDL 15/2025): el ISV que distribuye software de facturación con iText/Ghostscript AGPL sin licencia comercial acumula riesgo copyleft y riesgo de sanción AEAT (hasta €150.000/año) sobre el mismo componente.
¿IronPDF es un sistema de facturación certificado VeriFactu?
No. IronPDF es un componente que se integra dentro del software de facturación del ISV. La certificación VeriFactu es responsabilidad del sistema completo.
¿Puede Ghostscript GPL generar PDFs con la leyenda VERI*FACTU?
Ghostscript GPL no soporta HTML nativo — requiere conversión previa a PostScript. La leyenda VERI*FACTU y el QR AEAT se pueden añadir mediante construcción manual, pero con mayor complejidad que con el motor Chromium de IronPDF que renderiza plantillas HTML directamente.
¿IronPDF soporta firma PAdES con certificados FNMT para TicketBAI?
Sí. IronPDF proporciona PdfSignature con soporte para X509Certificate2, compatible con certificados FNMT y otras CAs acreditadas bajo eIDAS. La firma PAdES resultante es válida para TicketBAI en Bizkaia (BATUZ), Gipuzkoa y Araba.
¿IronPDF soporta PDF/A-3 para Facturae y Crea y Crece?
Sí. IronPDF incluye SaveAsPdfA() con soporte para PDF/A-3B y EmbedFile() para adjuntar el XML Facturae 3.2.2. Es el formato requerido para FACe (B2G) y el archivado bajo Crea y Crece (EN 16931/CIUS-ES).




