§WHAT IS
¿Qué es Code 128 y por qué se llama así?
Code 128 es un formato de código de barras alfanumérico de alta densidad publicado en 1981 por Computer Identics, capaz de codificar los 128 caracteres ASCII de imprenta en un único barcode escaneable.
Code 128 se diseñó como respuesta a las limitaciones de Code 39, que solo soporta mayúsculas y dígitos. Code 128 codifica los 128 caracteres ASCII estándar (de hecho, ese es el origen de su nombre): mayúsculas, minúsculas, números, signos de puntuación y caracteres de control. Esto lo convierte en el formato más versátil del mundo de los códigos 1D.
La magia técnica de Code 128 está en sus tres subconjuntos (A, B y C) que el lector cambia automáticamente para optimizar densidad: el subconjunto C codifica pares de dígitos en una sola barra, lo que reduce el ancho del código a la mitad cuando los datos son numéricos. El subconjunto B se usa para texto mixto, y el A para caracteres de control.
Code 128 incluye también un dígito de control basado en módulo 103, calculado automáticamente por cualquier generador serio. Eso lo hace robusto: aproximadamente un 99,9% de probabilidad de detectar lecturas erróneas si una barra se daña parcialmente. No es tolerante como QR (no recupera datos perdidos), pero sí los detecta y rechaza.
§WHEN TO USE
¿Cuándo elegir Code 128 frente a otras opciones?
Cuando no vas a vender el producto en retail organizado. Code 128 es perfecto para inventario interno, etiquetas de envío, números de serie, identificadores de activos y cualquier código que generes y leas dentro de tu propia operación.
Code 128 es la elección obvia cuando no necesitas un código asignado por GS1. Casos típicos:
- Inventario interno de almacén: piezas, materiales, herramientas, lotes de producción.
- Etiquetas de envío con número de tracking propio.
- Identificadores de activos (ordenadores, impresoras, mobiliario de empresa).
- Pegatinas en archivos físicos de despacho de abogados, gestoría o consulta médica.
- Wristbands en eventos donde cada asistente lleva un identificador único.
- Cupones internos con caducidad y código alfanumérico.
No lo uses para retail organizado (lo escanean pero no lo aceptan en TPV de cadenas), para logística de palés (mejor ITF-14) o cuando necesites datos estructurados como lote y caducidad (mejor GS1-128).
Frente a Code 39, Code 128 ofrece mucha más densidad (40-50% menos ancho para los mismos datos), soporta minúsculas y caracteres especiales, y tiene mejor detección de errores. Code 39 solo es preferible si tu sistema legacy lo exige por compatibilidad.
§SPECS
Especificaciones técnicas del formato Code 128
Code 128 está estandarizado por la norma ISO/IEC 15417. Datos clave:
- Longitud: 1 a 80 caracteres (en la práctica más allá de 30-40 caracteres el código se vuelve muy largo y poco legible).
- Conjunto de caracteres: 128 caracteres ASCII de imprenta (códigos 0 a 127).
- Dígito de control: módulo 103, calculado automáticamente.
- Subconjuntos: A (caracteres de control), B (alfanumérico mayúsculas/minúsculas), C (dígitos por pares).
- Dimensiones: factor X recomendado entre 0,191 mm y 1,016 mm. Quiet zone de 10X a cada lado.
- Densidad: 5,5 mm/carácter en subconjunto C numérico, 11 mm/carácter en subconjunto B alfanumérico.
- Resistencia: detección por checksum, sin recuperación. Daños en barras provocan rechazo de lectura.
§COMPARISON
¿Cómo se compara Code 128 con QR y Code 39?
Code 128 es lineal con dígito de control y soporta ASCII completo. QR es 2D y soporta hasta 4.296 caracteres con recuperación de errores. Code 39 es lineal pero solo mayúsculas y dígitos, menos denso.
QR vs Code 128 es una comparativa frecuente. QR gana en capacidad (miles de caracteres frente a decenas), tolera daño parcial (hasta 30% con nivel H) y permite personalización visual con logo central. Code 128 gana en compatibilidad: cualquier lector láser de los años 90 lee Code 128, mientras que QR requiere cámara y software.
Code 39 fue el código alfanumérico estándar antes de Code 128. Se sigue usando en aviación, automoción y maquinaria industrial por inercia y compatibilidad con sistemas antiguos. Si arrancas un proyecto nuevo, no hay razón para preferir Code 39 sobre Code 128: este último es más denso, soporta más caracteres y tiene mejor detección de errores.
Cuando dudes entre Code 128 y QR para una etiqueta nueva: si solo necesitas pasar entre 5 y 30 caracteres a un lector láser, Code 128. Si vas a entregar más de 50 caracteres, una URL, datos de contacto, o quieres que el cliente lo escanee con su móvil, QR.
§FAQ
Preguntas frecuentes sobre CODE128
Q.01
¿Es Code 128 gratis para uso comercial?
Sí. El formato Code 128 está libre de patentes y royalties desde su publicación. Cualquiera puede generar e imprimir códigos Code 128 en productos comerciales sin pagar licencia, a diferencia del estándar EAN-13 que requiere registro en GS1.
Q.02
¿Qué longitud máxima recomienda este generador?
Técnicamente hasta 80 caracteres. En la práctica, mantén el contenido por debajo de 30-40 caracteres si vas a imprimirlo en una etiqueta convencional: a partir de ahí el código es muy ancho y necesita imprenta de alta resolución para mantener legibilidad.
Q.03
¿Funciona Code 128 con cualquier lector?
Sí. Cualquier lector láser de los últimos 25 años decodifica Code 128 por defecto. Es uno de los formatos más universales junto con EAN-13 y UPC-A. Las apps de móvil para escaneo profesional como Scandit, Cognex, Zebra DataWedge también lo soportan sin configuración.
Q.04
¿Puedo combinar Code 128 con texto humano legible?
Sí, el código generado incluye el texto debajo de las barras (ese texto es el que ves rotulado). Permite que un humano interprete el contenido si la lectura óptica falla. Si quieres ocultar el texto, puedes editar el SVG descargado para quitar ese elemento.
Q.05
¿Qué hago si mi código Code 128 no escanea?
Tres causas habituales: (1) margen blanco insuficiente (necesitas al menos 10X de quiet zone a cada lado), (2) impresión de baja resolución que difumina las barras finas (imprime a 300 dpi mínimo), o (3) escala demasiado pequeña. Descarga el SVG y prueba a imprimir a tamaño 1,5x si tu lector falla.