Código 128

Código 128 es una simbología de código de barras lineal de alta densidad definida en ISO/IEC 15417:2007. Se utiliza para códigos de barras alfanuméricos o sólo numéricos. Puede codificar los 128 caracteres de ASCII y, mediante el uso de un símbolo de extensión (FNC4), los caracteres Latin-1 definidos en ISO/IEC 8859-1. Generalmente da como resultado códigos de barras más compactos en comparación con otros métodos como el Código 39, especialmente cuando los textos contienen principalmente dígitos. El código 128 fue desarrollado por Computer Identics Corporation en 1981.

GS1-128 (anteriormente conocido como UCC/EAN-128) es un subconjunto del Código 128 y se utiliza ampliamente en todo el mundo en las industrias de transporte y embalaje como código de identificación de productos para los niveles de contenedores y paletas en la cadena de suministro.
Especificación

1: zona tranquila, 2:Comienza Código B, 3:data, 4:checksum, 5:stop
Un código de barras Code 128 tiene siete secciones:
- Zona tranquila
- Iniciar el símbolo
- Datos codificados
- Signatura (mandatorio)
- Para el símbolo
- Barra final (a menudo considerada parte del símbolo de parada)
- Zona tranquila
El símbolo de verificación se calcula a partir de una suma ponderada (módulo 103) de todos los símbolos.
Subtipos
El código 128 incluye 108 símbolos: 103 símbolos de datos, 3 símbolos de inicio y 2 símbolos de parada. Cada símbolo consta de tres barras negras y tres espacios blancos de distintos anchos. Todos los anchos son múltiplos de un "módulo" básico. Cada barra y espacio tiene de 1 a 4 módulos de ancho, y los símbolos tienen un ancho fijo: la suma de los anchos de las tres barras negras y las tres barras blancas es 11 módulos.
El patrón de parada se compone de dos símbolos superpuestos y tiene cuatro barras. El patrón de parada permite el escaneo bidireccional. Cuando el patrón de parada se lee de izquierda a derecha (el caso habitual), se reconoce el símbolo de parada (seguido de una barra de 2 módulos). Cuando el patrón de parada se lee de derecha a izquierda, se reconoce el símbolo de parada inversa (seguido de una barra de 2 módulos). Un escáner que ve el símbolo de parada inversa sabe que debe omitir la barra de 2 módulos y leer el resto del código de barras al revés.
A pesar de su nombre, el Código 128 no tiene 128 símbolos distintos, por lo que no puede representar 128 puntos de código directamente. Para representar los 128 valores ASCII, cambia entre tres conjuntos de códigos (A, B, C). Juntos, los conjuntos de códigos A y B cubren los 128 caracteres ASCII. El conjunto de códigos C se utiliza para codificar eficientemente cadenas de dígitos. El subconjunto inicial se selecciona utilizando el símbolo de inicio apropiado. Dentro de cada conjunto de códigos, algunos de los 103 puntos de códigos de datos están reservados para pasar a uno de los otros dos conjuntos de códigos. Los cambios se realizan utilizando los puntos de código 98 y 99 en los conjuntos de códigos A y B, 100 en los conjuntos de códigos A y C y 101 en los conjuntos de códigos B y C para cambiar entre ellos):
- 128A (Code Set A) – ASCII caracteres 00 a 95 (0–9, A–Z y códigos de control), caracteres especiales y FNC 1–4
- 128B (Code Set B) – ASCII caracteres 32 a 127 (0–9, A–Z, a–z), caracteres especiales y FNC 1–4
- 128C (Code Set C) – 00–99 (codifica dos dígitos con un solo punto de código) y FNC1
El ancho mínimo de la zona silenciosa a la izquierda y a la derecha del Código 128 es 10x, donde x es el ancho mínimo de un módulo. Es obligatorio en el lado izquierdo y derecho del código de barras.
Inicio/parada y anchos de barra
Cada símbolo del código de barras se compone de tres barras y tres espacios. Cada barra o espacio tiene 1, 2, 3 o 4 unidades de ancho, la suma de los anchos de barras debe ser par (4, 6 u 8 unidades), la suma de los anchos de los espacios debe ser impar (3, 5 o 7 unidades), y un total de 11 unidades por símbolo. Por ejemplo, codificar el carácter ASCII "0" puede verse como 10011101100, donde una secuencia de 1 es una barra y una secuencia de 0 es un espacio. Un solo 1 sería la línea más delgada del código de barras. Tres unos en secuencia (111) indican una barra tres veces más gruesa que una sola barra de 1.
Hay 108 símbolos posibles de 11 unidades de ancho y el código utiliza todos los símbolos posibles. Dos de los símbolos se utilizan para indicación de parada (fin de código de barras), parada y parada inversa. Los dos símbolos de parada son especiales porque siempre van seguidos de una barra de 2 unidades, formando un patrón de parada de 13 unidades de largo. La lectura del patrón de parada de izquierda a derecha es el símbolo de parada (seguido de una barra de 2 unidades), y la lectura del patrón de parada de derecha a izquierda es el símbolo de parada inversa (seguido de una barra de 2 unidades).
Cálculo del dígito de control
El dígito de control es una suma de control ponderada de módulo 103. Se calcula sumando el código de inicio 'valor' a los productos del 'valor' de cada símbolo; multiplicado por el peso de su posición en la cadena del código de barras. El símbolo inicial y el primer símbolo codificado están en la posición 1. Luego, la suma de los productos se reduce en módulo 103. El resto se vuelve a convertir en uno de los 103 símbolos no delimitadores (siguiendo las instrucciones dadas). a continuación) y adjunto al código de barras, inmediatamente antes del símbolo de parada.
Por ejemplo, en la siguiente tabla, la variante del código 128 Un valor de suma de comprobación se calcula para la cadena alfanumérica PJJ123C:
| Código | Valor | Peso | Valor × Peso |
|---|---|---|---|
| Código de inicio A | 103 | 1) | 103 |
| P | 48 | 1 | 48 |
| J | 42 | 2 | 84 |
| J | 42 | 3 | 126 |
| 1 | 17 | 4 | 68 |
| 2 | 18 | 5 | 90 |
| 3 | 19 | 6 | 114 |
| C | 35 | 7 | 245 |
| Sum | 878 | ||
| Restante mod 103 | 54 | ||
Así que el valor 54, que equivale a una V, es anexado, luego seguido por el código Stop.
A los efectos de calcular el símbolo de verificación, los símbolos de cambio y cambio de código se tratan de la misma manera que cualquier otro símbolo en el código de barras.
Uso de FNC4 para codificar caracteres altos (160–255)
El símbolo especial FNC4 ("Función 4"), presente sólo en los conjuntos de códigos A y B, se puede utilizar para codificar todos los caracteres latinos-1 (ISO-8859-1) en un Código 128. código de barras.
Cuando un único 'FNC4' está presente en una cadena, el siguiente símbolo se lee como ASCII, pero el valor se aumenta por +128, por lo que toma el rango más alto de la tabla ISO-8859-1. Si el siguiente símbolo es un 'SHIFT', entonces se utilizará un segundo símbolo para obtener el personaje.
Si dos 'FNC4' Se utilizan caracteres, todos los caracteres de datos siguientes son caracteres ASCII extendidos hasta que se utilicen dos caracteres 'FNC4' consecutivos. Se encuentran caracteres o se llega al final del símbolo. Si durante esta secuencia de codificación extendida se genera un solo 'FNC4' Cuando se encuentra un carácter, se utiliza para volver a la codificación ASCII estándar solo para el siguiente carácter de datos. 'CAMBIO' y los caracteres del subconjunto de caracteres tendrán su efecto normal durante dicha secuencia.
Desde el Código 128A puede acceder a caracteres especiales Latin-1 desde 160 (hex A0, espacio sin separación) hasta 223 (hexadecimal DF, ß) a través de FNC4. Los caracteres en minúscula del 224 (hex E0, à) al 254 (hex FE, þ) están disponibles mediante FNC4+SHIFT B. Los caracteres ÷ (247, hex F7) y ÿ (255, hex FF) no están disponibles.
La función no está disponible para GS1-128. Dado que la compatibilidad con el Código 128 Tipo B (y C) no es muy común, podría ser más fácil utilizar un Código QR para caracteres del rango de códigos ISO-8859-1.
Anchos de códigos de barras
El Código 128 especifica una combinación de 6 barras y espacios alternos (3 de cada uno) para cada símbolo. Así, cada símbolo comienza con una barra y termina con un espacio. En las fuentes de códigos de barras, la barra final generalmente se combina con el símbolo de parada para crear un patrón de parada más amplio. La siguiente tabla detalla los anchos asociados con cada barra y espacio para cada símbolo. El ancho de cada barra o espacio podrá ser de 1, 2, 3 o 4 unidades (módulos). Usando el ejemplo anterior, una 'A' se representaría con el patrón 10100011000, o como anchos 111323 en las tablas siguientes.
El valor de los anchos se obtiene contando la longitud de cada corrida de unos y luego de ceros en el patrón, comenzando desde la izquierda. Siempre habrá 6 tramos y las longitudes de estos 6 tramos forman el valor de Anchos. Por ejemplo, utilizando el patrón 10100011000, las longitudes de ejecución son 1 (dígito 1), 1 (dígito 0), 1 (dígito 1), 3 (dígito 0), 2 (dígito 1), 3 (dígito 0). Al informar solo las longitudes de cada ejecución se obtiene 1, 1, 1, 3, 2, 3, lo que produce un valor de ancho de 111323.
| Valor | Valor hex | 128A | 128B | 128C | Posición de fuentes (Common/Uncommon/Barcodesoft) | Bar/Space | ||
|---|---|---|---|---|---|---|---|---|
| Código | Latin-1 | Patrón | Ancho | |||||
| 0 | 00 | espacio | espacio | 00 | 32 o 194 o 207 / 212 / 252 | ␣ or  o Ï / Ô / ü | 11011001100 | 212222 |
| 1 | 01 | ! | ! | 01 | 33 | ! | 11001101100 | 222122 |
| 2 | 02 | " | " | 02 | 34 | " | 11001100110 | 222221 |
| 3 | 03 | # | # | 03 | 35 | # | 10010011000 | 121223 |
| 4 | 04 | $ | $ | 04 | 36 | $ | 10010001100 | 121322 |
| 5 | 05 | % | % | 05 | 37 | % | 10001001100 | 131222 |
| 6 | 06 | " | " | 06 | 38 | " | 10011001000 | 122213 |
| 7 | 07 | ' | ' | 07 | 39 | ' | 10011000100 | 122312 |
| 8 | 08 | () | () | 08 | 40 | () | 10001100 | 132212 |
| 9 | 09 | ) | ) | 09 | 41 | ) | 11001000 | 221213 |
| 10 | 0a | * | * | 10 | 42 | * | 11001000100 | 221312 |
| 11 | 0b | + | + | 11 | 43 | + | 11000100 | 231212 |
| 12 | 0c | , | , | 12 | 44 | , | 10110011100 | 112232 |
| 13 | 0d | - | - | 13 | 45 | - | 10011011100 | 122132 |
| 14 | 0e | . | . | 14 | 46 | . | 10011001110 | 122231 |
| 15 | 0f | / | / | 15 | 47 | / | 10111001100 | 113222 |
| 16 | 10 | 0 | 0 | 16 | 48 | 0 | 10011101100 | 123122 |
| 17 | 11 | 1 | 1 | 17 | 49 | 1 | 10011100110 | 123221 |
| 18 | 12 | 2 | 2 | 18 | 50 | 2 | 11001110010 | 223211 |
| 19 | 13 | 3 | 3 | 19 | 51 | 3 | 11001011100 | 221132 |
| 20 | 14 | 4 | 4 | 20 | 52 | 4 | 11001110 | 221231 |
| 21 | 15 | 5 | 5 | 21 | 53 | 5 | 11011100 | 213212 |
| 22 | 16 | 6 | 6 | 22 | 54 | 6 | 11001110100 | 223112 |
| 23 | 17 | 7 | 7 | 23 | 55 | 7 | 11101110 | 312131 |
| 24 | 18 | 8 | 8 | 24 | 56 | 8 | 11101001100 | 311222 |
| 25 | 19 | 9 | 9 | 25 | 57 | 9 | 11100101100 | 321122 |
| 26 | 1a | : | : | 26 | 58 | : | 11100110 | 321221 |
| 27 | 1b | ; | ; | 27 | 59 | ; | 11101100 | 312212 |
| 28 | 1c | c) | c) | 28 | 60 | c) | 11100110 | 322112 |
| 29 | 1d | = | = | 29 | 61 | = | 11100110010 | 322211 |
| 30 | 1e | ■ | ■ | 30 | 62 | ■ | 11011000 | 212123 |
| 31 | 1f | ? | ? | 31 | 63 | ? | 11011000110 | 212321 |
| 32 | 20 | @ | @ | 32 | 64 | @ | 11000110 | 232121 |
| 33 | 21 | A | A | 33 | 65 | A | 10100011000 | 111323 |
| 34 | 22 | B | B | 34 | 66 | B | 10001011000 | 131123 |
| 35 | 23 | C | C | 35 | 67 | C | 10001000110 | 131321 |
| 36 | 24 | D | D | 36 | 68 | D | 1011000 | 112313 |
| 37 | 25 | E | E | 37 | 69 | E | 10001101000 | 132113 |
| 38 | 26 | F | F | 38 | 70 | F | 10001100010 | 132311 |
| 39 | 27 | G | G | 39 | 71 | G | 1101000 | 211313 |
| 40 | 28 | H | H | 40 | 72 | H | 11000101000 | 231113 |
| 41 | 29 | I | I | 41 | 73 | I | 11000100010 | 231311 |
| 42 | 2a | J | J | 42 | 74 | J | 10110111000 | 112133 |
| 43 | 2b | K | K | 43 | 75 | K | 10110001110 | 112331 |
| 44 | 2c | L | L | 44 | 76 | L | 10001101110 | 132131 |
| 45 | 2d | M | M | 45 | 77 | M | 10111011000 | 113123 |
| 46 | 2e | N | N | 46 | 78 | N | 10111000110 | 113321 |
| 47 | 2f | O | O | 47 | 79 | O | 10001110110 | 133121 |
| 48 | 30 | P | P | 48 | 80 | P | 11101110 | 313121 |
| 49 | 31 | Q | Q | 49 | 81 | Q | 11010001110 | 211331 |
| 50 | 32 | R | R | 50 | 82 | R | 11000101110 | 231131 |
| 51 | 33 | S | S | 51 | 83 | S | 11011101000 | 213113 |
| 52 | 34 | T | T | 52 | 84 | T | 11011100010 | 213311 |
| 53 | 35 | U | U | 53 | 85 | U | 11011101110 | 213131 |
| 54 | 36 | V | V | 54 | 86 | V | 11101011000 | 311123 |
| 55 | 37 | W | W | 55 | 87 | W | 11101000110 | 311321 |
| 56 | 38 | X | X | 56 | 88 | X | 11100010110 | 331121 |
| 57 | 39 | Y | Y | 57 | 89 | Y | 11101101000 | 312113 |
| 58 | 3a | Z | Z | 58 | 90 | Z | 11101100010 | 312311 |
| 59 | 3b | [ | [ | 59 | 91 | [ | 11100011010 | 332111 |
| 60 | 3c | 60 | 92 | 11101111010 | 314111 | |||
| 61 | 3d | ] | ] | 61 | 93 | ] | 11001000010 | 221411 |
| 62 | 3e | ^ | ^ | 62 | 94 | ^ | 11110001010 | 431111 |
| 63 | 3f | ¿Qué? | ¿Qué? | 63 | 95 | ¿Qué? | 10100110000 | 111224 |
| 64 | 40 | NUL | ` | 64 | 96 | ` | 10100001100 | 111422 |
| 65 | 41 | SOH | a | 65 | 97 | a | 10010110000 | 121124 |
| 66 | 42 | STX | b | 66 | 98 | b | 10010000110 | 121421 |
| 67 | 43 | ETX | c | 67 | 99 | c | 10000101100 | 141122 |
| 68 | 44 | EOT | d | 68 | 100 | d | 10000100110 | 141221 |
| 69 | 45 | ENQ | e | 69 | 101 | e | 10110010000 | 112214 |
| 70 | 46 | ACK | f | 70 | 102 | f | 10110000100 | 112412 |
| 71 | 47 | BEL | g | 71 | 103 | g | 10011010000 | 122114 |
| 72 | 48 | BS | h | 72 | 104 | h | 10011000010 | 122411 |
| 73 | 49 | HT | i | 73 | 105 | i | 10000110100 | 142112 |
| 74 | 4a | LF | j | 74 | 106 | j | 10000110010 | 142211 |
| 75 | 4b | VT | k | 75 | 107 | k | 11000010010 | 241211 |
| 76 | 4c | FF | l | 76 | 108 | l | 11001010000 | 221114 |
| 77 | 4d | CR | m | 77 | 109 | m | 11110111010 | 413111 |
| 78 | 4e | Así que... | n | 78 | 110 | n | 11000010100 | 241112 |
| 79 | 4f | SI | o | 79 | 111 | o | 10001111010 | 134111 |
| 80 | 50 | DLE | p | 80 | 112 | p | 10100111100 | 111242 |
| 81 | 51 | DC1 | q | 81 | 113 | q | 10010111100 | 121142 |
| 82 | 52 | DC2 | r | 82 | 114 | r | 10010011110 | 121241 |
| 83 | 53 | DC3 | s | 83 | 115 | s | 10111100 | 114212 |
| 84 | 54 | DC4 | t | 84 | 116 | t | 10011110100 | 124112 |
| 85 | 55 | NAK | u | 85 | 117 | u | 10011110010 | 124211 |
| 86 | 56 | SYN | v | 86 | 118 | v | 11110100 | 411212 |
| 87 | 57 | ETB | w | 87 | 119 | w | 11110010100 | 421112 |
| 88 | 58 | CAN | x | 88 | 120 | x | 11110010 | 421211 |
| 89 | 59 | EM | Sí. | 89 | 121 | Sí. | 11011110 | 212141 |
| 90 | 5a | SUB | z | 90 | 122 | z | 11011110 | 214121 |
| 91 | 5b | ESC | {} | 91 | 123 | {} | 11110110 | 412121 |
| 92 | 5c | SM | Silencio | 92 | 124 | Silencio | 1010111111000 | 111143 |
| 93 | 5d | SG | } | 93 | 125 | } | 10100011110 | 111341 |
| 94 | 5e | RS | ~ | 94 | 126 | ~ | 10001011110 | 131141 |
| 95 | 5f | Estados Unidos | DEL | 95 | 195 / 200 / 240 | él / È / ð | 10111101000 | 114113 |
| 96 | 60 | FNC 3 | FNC 3 | 96 | 196 / 201 / 241 | Ä / É / ñ | 10111100010 | 114311 |
| 97 | 61 | FNC 2 | FNC 2 | 97 | 197 / 202 / 242 | Å / Ê / ò | 11110101000 | 411113 |
| 98 | 62 | Cambio B | Cambio A | 98 | 198 / 203 / 243 | . | 11110100010 | 411311 |
| 99 | 63 | Código C | Código C | 99 | 199 / 204 / 244 | Ç / TELÉFONO | 10111011110 | 113141 |
| 100 | 64 | Código B | FNC 4 | Código B | 200 / 205 / 200 | È / Í / È | 10111101110 | 114131 |
| 101 | 65 | FNC 4 | Código A | Código A | 201 / 206 / 246 | É / Î / ö | 11101011110 | 311141 |
| 102 | 66 | FNC 1 | FNC 1 | FNC 1 | 202 / 207 / 247 | Ê / Ï / ¦ | 11110101110 | 411131 |
| 103 | 67 | Código de inicio A | 203 / 208 / 248 | ♪♪ | 11010000100 | 211412 | ||
| 104 | 68 | Código de inicio B | 204 / 209 / 249 | Ñ / Ñ / ù | 11010010000 | 211214 | ||
| 105 | 69 | Código de inicio C | 205 / 210 / 250 | Í / Ò / ú | 11010011100 | 211232 | ||
| 106 | 6a | Para. | — | — | 11000111010 | 233111 | ||
| — | — | Parada inversa | — | — | 11010111000 | 211133 | ||
| — | — | Patrón de parada (7 barras/espacios) | 206 / 211 / 251 | Î / O / û | 1100011101011 | 2331112 | ||
El código A ", " Código B " y " Código C " Los símbolos hacen que todos los siguientes símbolos se interpreten de acuerdo con el subcódigo correspondiente (es decir, 128a, 128b o 128c). El " turno " El símbolo cambia una sola interpretación del símbolo siguiente entre los subcodios A y B.
El CHAR ASCII codificado depende de la fuente de código de barras usada real. Especialmente el carbón ASCII del valor 0 y del valor 95 y superior puede definirse de manera diferente en la fuente que está instalada.
Los códigos FNCx se utilizan para fines especiales. FNC1 al comienzo de un código de barras indica un código de barras GS1-128 que comienza con un identificador de aplicación de 2, 3 o 4 dígitos asignado por el Uniform Code Council, que explica los siguientes dígitos. Por ejemplo, el identificador de aplicación 421 indica que le sigue un código de país numérico ISO 3166-1 y un código postal de destino. Por lo tanto, el código postal estadounidense de la Casa Blanca generalmente se imprimiría como "(421) 840 20500", pero en realidad se codificaría como "[Inicio C] [FNC1] 42 18 40 20 50 [Código A] 16 [Símbolo de verificación 92] [Parar]"
FNC2 (anexo de mensaje) puede aparecer en cualquier lugar dentro de un código de barras para indicar que el lector de códigos de barras debe almacenar la cadena actual y anteponerla a la cadena del siguiente código de barras que se lea. No es utilizado por GS1-128.
FNC3 (inicializar) puede aparecer en cualquier lugar dentro de un código de barras para indicarle al lector de códigos de barras que se inicialice o se reprograme según las instrucciones de la cadena del código de barras.
FNC4 se utiliza para representar un juego de caracteres ASCII extendido (ver § Notas). No es utilizado por GS1-128.
Disponibilidad
Para el usuario final, los códigos de barras Code 128 pueden generarse mediante una aplicación externa para crear una imagen del código de barras o mediante una solución de códigos de barras basada en fuentes. Cualquiera de las soluciones requiere el uso de una aplicación o un complemento de aplicación para calcular el dígito de control y crear el código de barras.
Optimización de la longitud del código de barras mediante Code 128 Type-C
El conjunto de códigos C utiliza un símbolo de código para representar dos dígitos. Por lo tanto, puede crear códigos de barras más cortos si el contenido consta únicamente de números o si hay secuencias más largas de dígitos dentro del código.
Sin embargo, cuando la cadena contiene sólo unos pocos dígitos o está mezclada con caracteres que no son dígitos, no siempre produce un código más compacto que los conjuntos de códigos A o B. El uso del conjunto de códigos C guarda un símbolo por dos dígitos, pero cuesta un símbolo de cambio de modo para entrar y salir del conjunto. Por lo tanto, sólo vale la pena usarlo si hay suficientes dígitos consecutivos. Por ejemplo, codificar la cadena "X00Y" con el conjunto de códigos A o B se requieren 7 símbolos de código ([Inicio B] 56 16 16 57 [suma de comprobación] [Parada]), mientras que se usa el conjunto de códigos C para el conjunto de códigos "X00Y" daría como resultado un código de 8 símbolos de longitud ([Inicio B] 56 [Código C] 00 [Código B] 57 [suma de comprobación] [Parada]).
Utilizar el conjunto de códigos C solo es ventajoso en las siguientes condiciones:
| Ubicación de los dígitos | Número de dígitos consecutivos |
|---|---|
| inicio de los datos | 4+ |
| fin de los datos | 4+ |
| medio de datos (redondeados por símbolos del conjunto de códigos A o B) | 6+ |
| datos completos | 2 o 4+ (pero no 3) |
Al final de una cadena, retrasar la transición al conjunto de códigos C hasta que quede un número par de dígitos evita un símbolo adicional. Considere la cadena "...01234": un cambio retrasado produce ... 0 [Código C] 12 34 [suma de comprobación] [Detener] pero un cambio temprano produce ... [Código C] 01 23 [Código A] 4 [suma de comprobación] [Parada].
Por ejemplo, dada la cadena "098x1234567y23", los ahorros en la longitud del código de barras utilizando el conjunto de códigos C solo se logran si se aplica a la parte media de la cadena. Para la parte inicial y final de la cadena, cambiar al conjunto de códigos C no es efectivo. Como hay un número impar de dígitos en el medio de la cadena, el impar debe usar un conjunto de códigos diferente, pero no importa si es el primero o el último; Se requieren 16 símbolos en cualquier caso: [Inicio B] 0 9 8 x 1 [Código C] 23 45 67 [Código B] y 2 3 [suma de verificación] [Parada], o [ Inicio B] 0 9 8 x [Código C] 12 34 56 [Código B] 7 y 2 3 [suma de comprobación] [Parada].
Optimizar la longitud del código de barras resultante es importante cuando se utilizan lectores de códigos de barras que deben detectar toda la imagen del código de barras a la vez para poder leerla, como los escáneres láser comunes. Cuanto más largo sea el código de barras, mayor será la distancia entre el lector de códigos de barras láser y la imagen del código de barras, lo que dificulta o imposibilita la lectura por encima de algunas longitudes/distancias umbral.
La codificación óptima se puede encontrar utilizando un algoritmo de programación dinámica.
Contenido relacionado
Spl (Unix)
Tabla de métodos virtuales
ALGOL Y
Hacer bucle while
API de repositorio de contenido para Java