Este repositório é um exemplo didático para avaliar e comparar diferenças na geração de códigos de barras CODE-128 a partir de uma chave de acesso (44 caracteres) de documentos fiscais eletrônicos.
A proposta é permitir, de forma simples e visual, comparar:
- CODE-128 híbrido (NT): Start C com alternância entre Code Set C/A conforme a Nota Técnica Conjunta 2025.001 (cenário com CNPJ alfanumérico).
- CODE-128C (somente conjunto C): quando a chave é somente numérica, codificando em pares (00–99).
- CODE-128A (somente conjunto A): um símbolo por caractere (base de comparação).
Como é um projeto estático (HTML/CSS/JS), você pode executar de duas formas:
- Abrindo o arquivo: abra o
index.htmlno navegador. - Servidor local (opcional): use qualquer servidor estático para evitar restrições do navegador em alguns ambientes.
Exemplos de uso na página:
- Clique em “Gerar exemplo numérico” para uma chave com CNPJ apenas dígitos (habilita a comparação com CODE-128C).
- Clique em “Gerar exemplo alfanumérico” para uma chave com letras na raiz do CNPJ, conforme cenário descrito na NT.
- Edite os 3 trechos da chave e clique em “Gerar barras da chave abaixo” para validar DV e renderizar as barras.
- Montagem da chave (44) a partir de 3 campos (6 + 14 + 24).
- Validação do formato “amplo” da chave (letras maiúsculas e números, nas posições esperadas).
- Cálculo/validação do dígito verificador (DV) da chave.
- Geração do CODE-128 em SVG em três estratégias (híbrido NT, 128C, 128A), para comparação visual.
index.html: interface para digitar/gerar a chave e exibir as 3 representações.styles.css: estilos da página.app.js: orquestra a UI (sanitização dos campos, validações, renderização).chaveAcesso.js: regras de DV da chave e geradores de exemplos (numérico/alfanumérico).barcode.js: codificação CODE-128 (híbrido NT e alternativas) e renderização do SVG.
- Este repositório é voltado a avaliação/estudo e comparação de saídas (diferenças entre conjuntos e transições), não a uma biblioteca pronta para produção.
- A saída do barcode é SVG (bom para inspeção visual e comparação lado a lado).
Este projeto está licenciado sob a MIT License. Veja o arquivo LICENSE.