PDF/A: El Estándar ISO para el Archivado a Largo Plazo de PDF
¿Qué es PDF/A?
PDF/A es un subconjunto de la especificación PDF estandarizado por ISO como ISO 19005 — diseñado específicamente para el archivado y preservación a largo plazo de documentos electrónicos. La "A" significa Archive (Archivo). A diferencia del PDF normal, que puede referenciar recursos externos, usar cifrado propietario o depender de JavaScript y conexiones de datos en vivo, PDF/A requiere que un documento sea completamente autocontenido y renderizable de forma independiente en cualquier momento futuro.
PDF/A está mandatado o fuertemente recomendado para:
- Documentos legales y gubernamentales (regulación eIDAS de la UE, tribunales federales de EE.UU., poder judicial alemán)
- Historiales médicos (registros de pacientes que deben archivarse durante 10–30 años)
- Documentos financieros (presentaciones ante la SEC, pistas de auditoría, pólizas de seguro)
- Archivado académico y bibliotecario
- Archivado conforme a ISO de facturas (PDF/A-3 con adjuntos XML)
Versiones y Niveles de Conformidad de PDF/A
PDF/A-1 (ISO 19005-1:2005) — Basado en PDF 1.4
El estándar de archivado original. El más restrictivo.
Permitido: Fuentes incrustadas, color independiente del dispositivo, metadatos XMP
Prohibido: Cifrado, JavaScript, contenido externo (URLs, fuentes externas), contenido de audio/vídeo, transparencia (restricción crítica), compresión LZW
Niveles de conformidad:
- PDF/A-1a: completamente accesible — requiere etiquetado adecuado (árbol de estructura lógica, orden de lectura, texto alternativo para imágenes, especificación de idioma).
- PDF/A-1b: conformidad básica — solo reproducibilidad visual; sin requisito de accesibilidad.
PDF/A-2 (ISO 19005-2:2011) — Basado en PDF 1.7
Añade capacidades que faltaban en PDF/A-1:
- Transparencia permitida (característica de PDF 1.5+)
- Compresión JPEG 2000
- Grupos de Contenido Opcional (capas)
- Adjuntos de archivos PDF/A (incrustar otros archivos PDF/A dentro del documento)
- Firmas digitales (compatibles con PAdES)
Niveles: PDF/A-2a (accesible), PDF/A-2b (básico), PDF/A-2u (Unicode)
PDF/A-3 (ISO 19005-3:2012) — Basado en PDF 1.7
Igual que PDF/A-2 pero añade: adjuntos de archivos arbitrarios (cualquier tipo de archivo: XML, CSV, Excel, TIFF).
Esto convierte a PDF/A-3 en el formato de elección para la facturación electrónica: el PDF es la factura legible por humanos, y un archivo XML incrustado (ZUGFeRD, Factur-X, XRechnung) son los datos estructurados legibles por máquina.
PDF/A-4 (ISO 19005-4:2020) — Basado en PDF 2.0
La versión más nueva: sin niveles a/b/u separados, reemplazados por PDF/A-4, PDF/A-4e (ingeniería), PDF/A-4f (con adjuntos). Todo el texto debe estar mapeado a Unicode.
Lo que PDF/A Prohíbe (Problemas Comunes)
| Característica prohibida | Por qué | Impacto en la conversión |
|---|---|---|
| Fuentes no incrustadas | El renderizado depende de las fuentes del sistema | Deben incrustarse todas las fuentes |
| Cifrado/contraseña | Impide el acceso futuro | Eliminar toda protección con contraseña |
| JavaScript | El comportamiento depende del visor | Eliminar todas las acciones JS |
| Referencias externas | URLs a recursos | Eliminar enlaces a recursos externos |
| Perfiles ICC faltantes | El renderizado del color es dependiente del dispositivo | Añadir intención de salida + incrustar perfiles ICC |
| Transparencia (solo PDF/A-1) | Disputas de algoritmo de renderizado | Aplanar la transparencia |
Crear Archivos PDF/A
Con Ghostscript (la conversión más fiable)
# Convertir cualquier PDF a PDF/A-1b
gs -dBATCH -dNOPAUSE \
-sDEVICE=pdfwrite \
-dPDFA=1 \
-dPDFACompatibilityPolicy=1 \
-sColorConversionStrategy=RGB \
-sOutputFile=salida_pdfa1b.pdf \
entrada.pdf
# Convertir a PDF/A-2b
gs -dBATCH -dNOPAUSE \
-sDEVICE=pdfwrite \
-dPDFA=2 \
-dPDFACompatibilityPolicy=1 \
-sOutputFile=salida_pdfa2b.pdf \
entrada.pdf
Con LibreOffice
# Convertir DOCX/ODT a PDF/A-1b
libreoffice --headless --convert-to pdf:writer_pdf_Export \
--infilter="writer_pdf_Export:SelectPdfVersion=1" \
documento.docx
# SelectPdfVersion: 1=PDF/A-1b, 2=PDF/A-2b, 3=PDF/A-3b
Con Python: pikepdf
import pikepdf
with pikepdf.open("documento.pdf") as pdf:
with pdf.open_metadata() as meta:
meta['pdfaid:part'] = '2'
meta['pdfaid:conformance'] = 'B'
pdf.save("documento_pdfa2b.pdf")
Importante: establecer los metadatos XMP solo NO hace que un PDF sea conforme — se necesita validación adecuada.
Validar la Conformidad PDF/A
VeraPDF (gratuito, validador de referencia)
# Instalar VeraPDF, luego validar
verapdf --flavour 2b documento.pdf
# Salida legible por máquina
verapdf --flavour 2b --format mrr documento.pdf > informe.xml
# Validación por lotes
verapdf --flavour 1b --format text *.pdf
VeraPDF es la implementación de referencia ISO y el validador más autorizado. Informa de cada cláusula específica del estándar ISO 19005 que el archivo viola.
Fallos de validación comunes y soluciones
- Fuente no incrustada: reexportar desde la aplicación fuente con "Incrustar fuentes" activado
- Intención de salida faltante: añadir un perfil ICC sRGB como intención de salida
- Transparencia presente (en PDF/A-1): usar Acrobat, Ghostscript o PDFBox para aplanar la transparencia
- PDF cifrado: descifrar primero con
qpdf --decrypt entrada.pdf salida.pdf
PDF/A para Facturación Electrónica: ZUGFeRD y Factur-X
ZUGFeRD (alemán) / Factur-X (híbrido franco-alemán) usan PDF/A-3 como contenedor:
import pikepdf
xml_factura = b'<?xml version="1.0"?><rsm:CrossIndustryInvoice>...</rsm:CrossIndustryInvoice>'
with pikepdf.open("factura_base.pdf") as pdf:
pdf.attachments["factur-x.xml"] = pikepdf.AttachedFile(
xml_factura,
mime_type="text/xml",
description="Datos estructurados de la factura Factur-X"
)
with pdf.open_metadata() as meta:
meta['pdfaid:part'] = '3'
meta['pdfaid:conformance'] = 'B'
pdf.save("factura_facturx.pdf")
Consejos Prácticos
- PDF/A-2b es el punto óptimo para la mayoría de las necesidades de archivado — permite transparencia (eliminando el mayor problema de PDF/A-1) y es ampliamente compatible
- PDF/A-3b para facturación electrónica — incrustar datos XML estructurados (ZUGFeRD, Factur-X, UBL) junto al PDF legible por humanos
- Valida siempre después de la conversión — VeraPDF es gratuito y autorizado; muchos "conversores PDF/A" producen salidas no conformes
- Elimina las contraseñas antes de convertir — los PDF cifrados no pueden ser PDF/A
- La salida del escáner frecuentemente no es PDF/A — los PDFs escaneados típicamente carecen de fuentes incrustadas e intenciones de salida; usa el software del escáner con exportación OCR+PDF/A
- No confundas PDF/A con PDF/X (impresión) o PDF/E (ingeniería) — son estándares ISO separados para diferentes casos de uso
La autocontención completa de PDF/A y la estandarización ISO lo convierten en el único formato PDF que debes usar cuando un documento debe permanecer legible y legalmente válido décadas en el futuro.
Conversiones relacionadas
Conversiones de documento que siguen este tema: