PDF417
PDF417 es el código de barras 2D lineal apilado que aparece en el reverso de cada carné de conducir de EE.UU., en la mayoría de los pasaportes americanos, en los albaranes de FedEx/UPS y en innumerables formularios gubernamentales. Es la única simbología 2D que los escáneres láser 1D pueden leer de forma fiable, por eso las instituciones con bases de escáneres instalados de millones de dólares no lo han abandonado en 30 años.
Aplicación AAMVA:AAMVA Card Design Standard v10, exige PDF417 para los carnés de conducir de EE.UU./Canadá.
Creador: Symbol Technologies (ahora Zebra), 1991. El nombre significa "Portable Data File, 4 bars, 17 modules."
Qué es
Físicamente, un símbolo PDF417 es una pila de filas horizontales, cada fila es un código de barras lineal. Un PDF417 de tamaño completo parece un ladrillo alto y estrecho con ~3–90 filas, donde cada fila lleva una porción del payload total. Porque cada fila comienza con un patrón de inicio y termina con un patrón de parada, PDF417 puede ser decodificado por un láser que escanea de izquierda a derecha fila por fila, no se requiere imager 2D.
Cada palabra de código tiene 17 módulos de ancho, construida a partir de 4 barras y 4 espacios (de ahí "4/17"). El payload se divide en palabras de código utilizando uno de tres "modos de compactación":
- Compactación de texto, 1,8 caracteres/palabra de código. Para alfanuméricos mixtos.
- Compactación de bytes, 1,2 bytes/palabra de código. Para datos binarios arbitrarios.
- Compactación numérica, 2,9 dígitos/palabra de código. Para payloads numéricos largos (como las combinaciones de código postal+estado de AAMVA).
Capacidad (filas × columnas)
El tamaño de PDF417 se especifica como filas × columnas de datos. El máximo es 90 filas × 30 columnas de datos = 2.700 palabras de código de datos. Capacidad alfanumérica aproximada:
| Filas × cols. de datos | Máx. alfanumérico | Uso típico |
|---|---|---|
| 3 × 1 | ~3 caracteres | Símbolo mínimo viable |
| 10 × 3 | ~30 caracteres | IDs cortos, URLs cortas |
| 20 × 5 | ~100 caracteres | Tarjeta de embarque, AAMVA corto |
| 30 × 8 | ~250 caracteres | Albarán FedEx |
| 40 × 12 | ~500 caracteres | Carné de conducir AAMVA completo |
| 90 × 30 | ~1.800 caracteres | Máximo teórico, raramente usado |
Niveles de corrección de errores (0–8)
PDF417 define 9 niveles de corrección de errores Reed-Solomon, añadiendo 2, 4, 8, 16, 32, 64, 128, 256 o 512 palabras de código ECC. Los niveles más altos manejan más daño pero cuestan capacidad de payload.
| Nivel ECC | Palabras de código ECC | Uso típico | % sobrecarga |
|---|---|---|---|
| 0 | 2 | Solo experimental | ~0,1 % |
| 1 | 4 | Códigos cortos, entorno controlado | ~0,2 % |
| 2 | 8 | Payloads pequeños | ~0,4 % |
| 3 | 16 | Payloads medianos, escaneo interior | ~0,8 % |
| 4 | 32 | Predeterminado para documentos cortos | ~1,5 % |
| 5 | 64 | Predeterminado real, albaranes, tarjetas de embarque, AAMVA | ~3 % |
| 6 | 128 | Entornos con mucho daño | ~6 % |
| 7 | 256 | Arrugado / exterior / industrial | ~12 % |
| 8 | 512 | Entornos extremos | ~25 % |
Macro PDF417 (payloads multisímbolo)
Cuando un payload supera el límite de 1.800 caracteres, PDF417 admite Macro PDF417, el payload se divide en hasta 99.999 símbolos separados, cada uno etiquetado con un índice Macro y un ID de archivo. El escáner lee todos los símbolos en cualquier orden, los reensambla y emite un único payload decodificado. Poco habitual en la práctica fuera del escaneo especializado de documentos.
Vectores de prueba canónicos
| Caso | Payload | Subcadena esperada |
|---|---|---|
| Albarán GS1 (estilo FedEx) | 123456789012345 FEDEX 2026-04-20 | FEDEX |
| Carné de conducir AAMVA (mínimo) | @\n\x1e\rANSI 636014100002DL00410241ZVZVA01DAQA123456789 | ANSI 636014 |
| URL corta simple | https://example.com/doc/X1234 | example.com/doc/X1234 |
| Recibo/factura largo | INV:2026-04-19 VENDOR:ACME TOTAL:$1,234.56 TAX:$98.76 … | ACME |
Errores comunes
- Las cámaras de teléfono de consumidor no decodifican PDF417 de forma fiable. iOS 17+ tiene un flujo especial con reconocimiento AAMVA (Wallet reconoce los carnés de conducir de EE.UU.), pero tratar eso como "iPhone soporta PDF417" es engañoso, solo es para el payload AAMVA específico. El comportamiento de Android varía enormemente según la app de cámara del fabricante.
- AAMVA requiere PDF417. El AAMVA Card Design Standard (CDS) requiere PDF417 específicamente, no QR, no Aztec. Si generas payloads AAMVA, el estándar te obliga.
- Las zonas silenciosas son 2× el ancho del módulo. Diferente de QR (4 módulos) y Aztec (ninguna). PDF417 necesita al menos 2 módulos de espacio en blanco en los bordes izquierdo y derecho; la zona silenciosa incorrecta es la razón número 1 por la que los códigos PDF417 legítimos fallan al escanear.
- La relación de aspecto importa. Las filas de PDF417 son más anchas que altas por diseño. Forzar una relación de aspecto cuadrada (escalando o imprimiendo en un sustrato cuadrado) rompe la decodificación del escáner láser; los imagers 2D a veces pueden recuperarse.
- PDF417 truncado. Variante que omite el indicador de fila derecha + patrón de parada. Ahorra ~12% del ancho del símbolo pero solo decodifica en imagers 2D, los escáneres láser necesitan el patrón de parada. Usar solo cuando se conoce la clase del escáner.
- Selección automática del modo de compactación. Los buenos codificadores cambian de compactación a mitad de payload para mayor eficiencia (bloque numérico → bloque de texto). Los codificadores manuales que bloquean un único modo desperdician capacidad. El codificador de Abundera selecciona automáticamente por palabra de código.
- Modo de compactación y juego de caracteres. La compactación de texto maneja solo ASCII imprimible. Los NULs embebidos, los acentos Latin-1 o los datos binarios obligan a la Compactación de Bytes, que reduce la eficiencia a 1,2 bytes/palabra de código.
- Estilo desactivado. Las funciones específicas de QR (formas de puntos personalizadas, degradados, logotipos centrales) no aplican. El panel de Estilo de Abundera se desactiva automáticamente para PDF417.
Compatibilidad de escáneres
| Lector | Soporte PDF417 | Notas |
|---|---|---|
| Cámara iOS (iOS 17+) | Solo AAMVA | Flujo nativo Wallet para carnés de conducir de EE.UU. Los payloads PDF417 generales no se decodifican. |
| Cámara Android (dependiente del fabricante) | Parcial | Las cámaras de stock Samsung + Pixel decodifican de forma inconsistente. Google Lens parcial. |
| Google Lens | No fiable | No es un camino de verificación viable para producción. |
| Escáner DMV EE.UU. / quiosco | Sí (canónico) | Para esto fue diseñado PDF417, cada DMV y quiosco de licores lee PDF417 de forma nativa. |
| Lector de tarjeta de embarque | Algunas aerolíneas | La mayoría de las aerolíneas pasaron a Aztec; algunas (ANA, JAL, aerolíneas heredadas de EE.UU.) todavía aceptan tarjetas de embarque PDF417. |
| Lector de albarán FedEx / UPS | Sí (canónico) | Los escáneres láser en todas las instalaciones de clasificación leen PDF417 de forma nativa. |
| Escáner láser 1D | Sí | Ventaja única frente a Aztec / Data Matrix, los láseres 1D PUEDEN decodificar PDF417. |
| Imager Zebra / Honeywell / Datalogic | Sí | Cada imager 2D industrial soporta PDF417. |
| Scandit / Dynamsoft SDK | Sí | Soporte completo incluyendo Macro PDF417. |
Ver también
- /pdf417-barcode-generator/, el generador PDF417.
- Referencia AAMVA, el caso de uso canónico de PDF417 (carnés de conducir de EE.UU.). Obligatorio por especificación.
- Aztec · PDF417 · Data Matrix comparativa, comparación lado a lado.
- Referencia Aztec, el hermano orientado a pantallas, para tarjetas de embarque y tránsito.
- Referencia Data Matrix, el hermano para marcado directo de piezas.
- Índice de estándares, volver al centro de referencia.