
O código
Intercalado 2 de 5 (
I25) foi desenvolvido para melhorar a densidade do
Código 2 de 5 Padrão (isto é, permitir colocar a mesma quantidade de informação em um espaço menor). É um código para números com uma quantidade par de dígitos (acrescenta-se um zero á esquerda se necessário). Cada seqüência de barras e espaços codifica dois dígitos, um nas barras e o outro nos espaços. Isto torna pouco viável a sua impressão através de uma fonte de letras.
A forma de codificação é idêntica à do Código 2 de 5 Padrão, porém aplicada a barras e espaços. São utilizadas duas larguras de elemento. O elemento mais largo deve ter duas a três vezes a largura do mais estreito. Cada caracter é codificado em uma sequência com 5 elementos, das quais 2 são largos e 3 são estreitos. O primeiro dígito é codificado nas barras da primeira seqüência, o segundo nos espaços da primeira seqüência, o terceiro nas barras da segunda seqüência e assim por diante.
Um código intercalado 2 de 5 é composto, no mínimo, do código de início, os códigos de dados e do código de fim. Um dígito de controle módulo 10 pode ser usado; neste caso o número codificado deve ter um número impar de dígitos, para resultar num número total de dígitos par.
As sequências utilizadas para os dígitos no Code Intercalado 2 de 5 são as mesmas do Código 2 de 5 Padrão, exceto que se aplicam tanto a barras como espaços:

Onde 'E' indica um elemento estreito e 'L' indica um elemento largo.
As marcas de início e fim fogem um pouco deste padrão:
- o início é a seqüência: barra de largura 1, espaço, barra de largura 1, espaço
- o fim é a seqüência: barra de largura 2, espaço, barra de largura 1
A largura de cada sequência é 14 a 18 módulos, dependendo da relação entre os elementos largos e estreitos. Considerando que não seja usado checksum e que o elemento largo tenha o dobro da largura do estreito, um código com n dígitos terá largura de 7*n+8 módulos:
- 7 = 4 elementos de lagura 2 + 6 elementos de largura 1 para cada par de dígitos
- 8 = largura das marcas de início e fim (4 módulos cada)
O Código Intercalado 2 de 5 não é um código robusto. Uma vez que as seqüencias de inicio e fim podem aparecer em alguns pares de dígitos, é possível (e relativamente fácil) fazer uma leitura parcial do código. Isto ocorre tipicamente ao se usar um leitor laser manual, com o feixe inclinado em relação ao código. Por este motivo, aplicações que requerem a leitura desta simbologia devem, sempre que possível, conferir o tamanho do código lido e rejeitar códigos com tamanho inferior ao esperado. Outra solução, para os casos em que múltiplos tamanhos precisam ser suportados, é exigir que barras horizontais acima e abaixo do código:

Por este motivo, a maioria dos leitores saem de fábrica com o I25 inibido ou limitado ao tamanho 14. Infelizmente o Intercalado 2 de 5 é ainda bastante utilizado, o que cria para os fornecedores de hardware e software os problemas de ensinar a configurar o leitor e explicar o porque de códigos inválidos serem capturados.
Um uso comum do I25 é na marcação de unidades múltiplas de varejo e atacado, no chamado ITF-14 ou DUN-14. O ITF-14 consiste no código de identificação do item (o EAN-13 que veremos no próximo post) acrescido de um dígito inicial que indica o modelo de embalagem (o que permite descobrir a quantidade de unidades na embalagem). Para evitar o problema de leitura parcial, o padrão DUN-14 estipula o uso das barras de proteção:

Um outro uso do I25 é nos documentos bancários brasileiros, consistindo o chamado Código Febraban. Este código possui tamanho fixo e dígito verificador, o que ameniza o problema da leitura imparcial. Padece porém de um tamanho exagerado (44 dígitos), muitas vezes não suportado pelos leitores projetados para o mercado americano ou europeu.
Do ponto de vista extritamente técnico, o código 128 substitui com vantagens o intercalado 2 de 5, apresentando densidade equivalente com muito maior robustez.
Atualizado em 18/jun/08 para corrigir o erro nos códigos de início e fim, detectado por José Roberto Vieira.