A simbologia Code 128 procura corrigir as deficiências das simbologias vistas anteriormente, apresentando as seguintes características:
- Capacidade de codificação de todo o conjunto ASCII (0x00 a 0x7F)
- Possibilidade de codificação compacta de códigos numéricos
- Checksum obrigatório, para maior confiabilidade
Existem 3 subsets, denominados A, B e C. O subset A permite codificar dígitos isolados, letras maiúsculas, caracteres especiais e os caracteres de controle. O subset B é semelhante ao A, porém os caracteres de controle são substituídos pelas letras minúsculas. No subset C, cada símbolo corresponde a um par de dígitos permitindo codificar números de forma compacta (como no intercalado 2de5).
Um código de barras Code 128 é composto por um Símbolo inicial (Start-A, Start-B ou Start-C), os símbolos correspondentes ao conteúdo, um símbolo com o checksum e o símbolo final (STOP) seguido de uma barra de largura dupla (poderíamos também considerar que o STOP possui largura 13 ao invés de 11).
As sequências de barra e espaços utilizadas pelo Code 128 são as seguintes (clique para ampliar):
onde '0' é um espaço e '1' é uma barra.
Um código composto de 'n' letras terá, portanto, a largura
11*(n+3)+2
11 = largura de um símbolo
3 = símbolos de início, checksum e fim
2 = barra dupla no vinal
Já um código com 'n' dígitos (n par) terá a largura 11*(n/2+3)+2 = 5,5*n + 35, o que é mais compacto que os 7*n+16 módulos do intercalado 2 de 5 sem checksum para n maior que 12. Além do checksum, o Code128 é mais seguro que o intercalado por ter marcas de início e fim.
O checksum é calculado somando-se o código do símbolo inicial aos códigos dos símbolos do conteúdo com peso 1, 2, 3, ... (da esquerda para a direita) e pegando-se o resto da divisão do total por 103.
Por exemplo, vamos considerar a codificação de DQSoft:
(104 + 1*36 + 2*49 + 3*51 + 4*79 + 5*70 + 6*84) mod 103 = 16
Quando um símbolo FNC1 é colocado logo depois do start, o conteúdo do código deve seguir uma estrutura definida. É o chamado GS1-128 (antigamente conhecido como UCC/EAN-128), que veremos no próximo post da série.
Nenhum comentário:
Postar um comentário