El código 39 (también conocido como Alpha39 , Código 3 de 9 , Código 3/9 , Tipo 39 , Código USS 39 o USD-3 ) es una simbología de código de barras discreta de longitud variable definida en ISO / IEC 16388:2007.
La especificación Code 39 define 43 caracteres, que consisten en letras mayúsculas (de la A a la Z), dígitos numéricos (del 0 al 9) y una serie de caracteres especiales (-, ., $, /, +, %, y espacio ). Se utiliza un carácter adicional (denominado '*') para los delimitadores de inicio y fin. Cada carácter se compone de nueve elementos: cinco barras y cuatro espacios. Tres de los nueve elementos de cada carácter son anchos (valor binario 1) y seis elementos son estrechos (valor binario 0).
El esquema de código de barras no contiene un dígito de control (a diferencia de, por ejemplo, el Código 128 ), pero puede considerarse autoverificador debido a que una sola barra interpretada erróneamente no puede generar otro carácter válido. Posiblemente, el inconveniente más grave del Código 39 es su baja densidad de datos: requiere más espacio para codificar datos en el Código 39 que, por ejemplo, en el Código 128. Esto significa que los productos muy pequeños no pueden etiquetarse con un código de barras basado en el Código 39. Sin embargo, algunos servicios postales aún utilizan el Código 39 (aunque la Unión Postal Universal recomienda utilizar el Código 128 en todos los casos [1] ), y puede decodificarse con prácticamente cualquier lector de códigos de barras . Una ventaja del Código 39 es que, dado que no es necesario generar un dígito de control, puede integrarse fácilmente en un sistema de impresión existente agregando una fuente de código de barras al sistema o impresora y luego imprimiendo los datos sin procesar en esa fuente.
El Código 39 fue desarrollado por el Dr. David Allais y Ray Stevens de Intermec en 1974. Su diseño original incluía dos barras anchas y un espacio ancho en cada carácter, lo que dio como resultado 40 caracteres posibles. Al dejar de lado uno de estos caracteres como patrón de inicio y fin, quedaron 39 caracteres, lo que dio origen al nombre Código 39. [2] Más tarde se añadieron cuatro caracteres de puntuación, sin utilizar barras anchas y con tres espacios anchos, lo que amplió el conjunto de caracteres a 43 caracteres. El Código 39 se estandarizó posteriormente como ANSI MH 10.8 M-1983 y MIL-STD-1189. [3] La norma MIL-STD-1189 ha sido cancelada y sustituida por ANSI/AIM BC1/1995, Especificación uniforme de simbología — Código 39. [4]
El carácter * que se muestra a continuación no es un carácter codificable real, sino el símbolo de inicio y fin del Código 39. La asimetría del símbolo permite al lector determinar la dirección del código de barras que se está escaneando. Este código se asigna tradicionalmente al carácter * en las fuentes de códigos de barras y, a menudo, aparecerá con la representación legible por humanos junto al código de barras.
Como generalidad, se puede considerar que la ubicación de las dos barras anchas codifica un número entre 1 y 10, y la ubicación del espacio ancho (que tiene cuatro posiciones posibles) se puede considerar que clasifica el carácter en uno de cuatro grupos (de izquierda a derecha): Letras (+30) (U–Z), Dígitos (+0) (1–9,0), Letras (+10) (A–J) y Letras (+20) (K–T). Por ejemplo, la letra P (al ser la 16.ª letra del alfabeto) tiene sus barras alineadas para representar el número 6, y el espacio en la posición más a la derecha para seleccionar el grupo Letras (+20).
Cuando se representa como un dígito, el número "10" se utiliza para codificar el número cero. Debido a que solo hay seis letras en el grupo de letras (+30) (letras 30 a 35, o U a Z), las otras cuatro posiciones de este grupo (36 a 39) se utilizan para representar tres símbolos (guión, punto, espacio) así como el carácter de inicio/fin.
Las dos barras anchas, de cinco posiciones posibles, codifican un número entre 1 y 10 utilizando un código de dos de cinco con la siguiente equivalencia numérica: 1, 2, 4, 7, 0. Los números se suman. Por ejemplo, el número 6 se codifica como NWWNN, con barras anchas que ocupan las posiciones de 2 y 4 (2+4=6). En el caso de NNWWN que es 4+7 = 11 se le asigna 0 para los dígitos (+0), y 10 para las columnas de letras (+10 – +30). Al codificar las letras (+10 a +30) la ecuación necesita un "−1" añadido por lo que 'A' es WNNNW → 1 + 10 − 1 → 10 como se muestra en la tabla.
Los últimos cuatro caracteres están formados por barras estrechas y tres espacios anchos. Hay cuatro posiciones posibles para el único espacio estrecho.
En esta tabla se describe la especificación del Código 39. El valor numérico asignado a cada carácter (excepto inicio/fin) se utiliza en el algoritmo de suma de comprobación que se describe a continuación.
Los caracteres se separan mediante un espacio estrecho adicional. Por ejemplo, la codificación completa de la letra "A", que en realidad incluye los caracteres de inicio y fin como "*A*", es "| |▮▮|▮|| |▮| |▮▮|" . El código no se leerá correctamente sin estos espacios entre caracteres. Las fuentes de códigos de barras incluyen invariablemente este espacio dentro del glifo del carácter.
El código 39 se utiliza a veces con un dígito de control opcional de módulo 10 o 43. Para usarlo, es necesario habilitar esta función en el lector de códigos de barras. El código con dígito de control se denomina Código 39 mod 10 o Código 39 mod 43, respectivamente.
Para calcularlo, se asigna un valor a cada carácter. Las asignaciones se enumeran en la tabla anterior y son casi sistemáticas, aunque no del todo.
A continuación se explica cómo realizar el cálculo de la suma de comprobación :
El código 39 está restringido a 43 caracteres. En el código ASCII completo , los símbolos 0 a 9, AZ, ".", "-" y el espacio son los mismos que sus representaciones en el código 39. Las letras minúsculas, los caracteres de puntuación adicionales y los caracteres de control se representan mediante secuencias de dos caracteres del código 39.
El siguiente software gratuito y de código abierto puede producir códigos de barras Code 39:
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )