Gerador de código de barras gratuito on-line

Gere códigos de barras nos formatos populares. Personalize e baixe em PNG ou SVG.

Gerado localmente · nada é enviado a um servidor
Codifica qualquer texto ou número. Formato mais versátil.

Breve história do código de barras

O código de barras é uma tecnologia com 77 anos e um único momento de invenção. Em 1948, o decano do Drexel Institute of Technology, em Filadélfia, ouviu por acaso Bernard Silver, um estudante de pós-graduação, falar com o presidente de uma cadeia alimentar local sobre o problema de ler automaticamente os dados de produto na caixa. O decano recusou o pedido, mas Silver levou a ideia a um instrutor de vinte e sete anos que conhecia, Norman Joseph Woodland, antigo escuteiro com um bom domínio do código morse e a inquietação típica de um engenheiro. Woodland demitiu-se da Drexel nesse mesmo inverno, mudou-se para o apartamento do avô em Miami Beach, e numa tarde do início de 1949, enquanto passava distraidamente os quatro dedos pela areia, surgiu-lhe a solução: se pegasse nos pontos e traços do código morse e os esticasse para baixo, obtinha uma série de bandas finas e grossas que um feixe de luz podia varrer para produzir impulsos descodificáveis. O seu primeiro esboço na areia não foram linhas paralelas mas círculos concêntricos, um padrão em «alvo» legível em qualquer direção do feixe. Woodland e Silver depositaram a patente a 20 de outubro de 1949 e obtiveram-na a 7 de outubro de 1952 como patente americana 2 612 994, «Classifying Apparatus and Method», com um leitor proposto baseado numa lâmpada incandescente de 500 watts. A patente não era comercialmente viável: os lasers e fotodíodos necessários para a ler a preços de consumidor ainda não existiam. Os dois inventores venderam a patente à Philco por 15 000 dólares em 1962. Silver morreu no ano seguinte num acidente de viação, aos 38 anos, antes de qualquer código de barras ter alguma vez lido um produto.

A descoberta veio duas décadas depois quando George Joseph Laurer, no laboratório da IBM em Research Triangle Park, na Carolina do Norte, propôs uma alternativa retangular (barras verticais em vez de círculos concêntricos) que se tornou o Universal Product Code (UPC). O Symbol Selection Committee adotou o desenho da IBM a 3 de abril de 1973. A primeira leitura comercial de UPC aconteceu a 26 de junho de 1974 no Marsh Supermarket em Troy, Ohio: um pacote de 10 pastilhas Wrigley's Juicy Fruit a 67 cêntimos, deslizado por um leitor fabricado pela NCR pelas mãos da operadora de caixa Sharon Buchanan e entregue por Clyde Dawson, um quadro da National Cash Register Company que tinha construído o equipamento. A embalagem está hoje preservada no Smithsonian Museum of American History. Em uma década, a leitura UPC era universal nos supermercados norte-americanos, e em 1976 o consórcio europeu de retalhistas adotou o EAN-13 (European Article Number, hoje GTIN-13 na terminologia GS1), o mesmo formato com um dígito extra para o prefixo de país e hoje o padrão mundial fora da América do Norte. Todo o ecossistema moderno do código de barras (caixas de supermercado, etiquetas de envio, livros de biblioteca, pulseiras hospitalares, badges de conferência, controlo de ativos) descende daquelas quatro linhas na areia de Miami Beach.

Os principais formatos de códigos de barras 1D

Dígitos de verificação, a matemática que apanha leituras erradas

A maioria dos códigos de barras de retalho inclui um dígito de verificação final calculado a partir dos dígitos anteriores. A matemática apanha leituras erradas de um único dígito (o erro de leitor mais comum) e a maioria das transposições de dígitos adjacentes. UPC-A e EAN-13 usam um algoritmo módulo 10: começando pela direita, multiplica-se cada dígito alternadamente por 1 e 3 (UPC-A) ou 3 e 1 (EAN-13), somam-se os produtos, toma-se o resultado módulo 10 e subtrai-se de 10, o resultado é o dígito de verificação (0 se o módulo for 0). Para o código UPC-A 03600029145, o dígito de verificação é 7, dando o completo 036000291452 numa lata de Coca-Cola. Code 128 usa uma soma ponderada módulo 103 mais complexa que inclui o carácter de início. Code 39 é auto-verificável por desenho (o padrão de barras de cada carácter é estruturalmente inequívoco) mas opcionalmente acrescenta um dígito de verificação módulo 43 para aplicações de alta confiança. Pharmacode não tem dígito de verificação, apoia-se em vez disso no seu intervalo limitado e no contexto da linha de produção. Esta ferramenta calcula os dígitos de verificação automaticamente; pode introduzir tanto a carga útil em bruto (e a ferramenta acrescenta o dígito de verificação) como a carga útil completa com verificação (e a ferramenta valida-a).

A zona muda, as barras precisam de espaço vazio à volta

Todo o código de barras 1D requer uma quantidade mínima de espaço em branco nas margens esquerda e direita, a zona muda. O requisito padrão é de pelo menos 10× a largura da barra mais estreita (designada «X» nas especificações de códigos de barras) de cada lado. Sem zonas mudas, os leitores não conseguem detetar de forma fiável onde o código começa e termina; os padrões de início e fim da simbologia foram desenhados para serem inequívocos apenas quando contrastam com espaço verdadeiramente vazio. A falha de produção mais comum é apertar um código contra uma margem colorida ou contra outro elemento da etiqueta para poupar espaço, partindo a zona muda. As especificações GS1 obrigam à largura da zona muda por simbologia e dimensão X; falhar a verificação da zona muda na validação significa que o código não vai ler de forma fiável no retalho. Esta ferramenta emite as zonas mudas adequadas automaticamente, tanto a saída PNG como a SVG incluem as margens necessárias.

JsBarcode, a biblioteca subjacente

Esta ferramenta usa JsBarcode (Johan Lindell, licença MIT, ~5k estrelas no GitHub), a biblioteca JavaScript de código aberto de códigos de barras mais utilizada. JsBarcode suporta CODE128, EAN (8/13), UPC, CODE39, ITF-14, MSI, Pharmacode e Codabar; renderiza para SVG, Canvas ou img HTML; e é entregue como um único pacote minificado de 60 KB. Corre inteiramente no navegador (sem servidor, sem envio) que é exatamente a propriedade de privacidade da qual esta ferramenta depende. A versão específica carregada aqui é a JsBarcode 3.11.6 (o pacote de todas as simbologias), fixada via hash Subresource Integrity (SRI) para que um atacante que comprometa a CDN não possa substituir uma versão diferente. A biblioteca é amplamente usada em plugins WordPress, utilitários de impressão de etiquetas, sistemas POS de restaurantes e aplicações de inventário para pequenos negócios; é a razão pela qual um «gerador de códigos de barras gratuito baseado no navegador» é, à partida, um produto viável.

GS1, de onde vêm os verdadeiros códigos de barras de retalho

GS1 (Global Standards 1) é a organização de normalização sem fins lucrativos que mantém o UPC, o EAN, os GTIN-13/14, o GLN (Global Location Number) e o sistema de Application Identifiers GS1-128 usado no envio. A GS1 tem cerca de 117 organizações membros de âmbito nacional a operar em mais de 150 países; os fabricantes registam-se na sua organização GS1 nacional, pagam uma taxa de licença anual (o preço escala com a faturação da empresa e o número de produtos) e recebem um prefixo de fabricante único que passa a ser os dígitos de topo do GTIN de cada produto. Isto significa: se quer um UPC ou EAN que os retalhistas vão efetivamente ler e reconhecer como o seu produto, precisa de adesão à GS1. Um código gerado aqui com dígitos arbitrários vai parecer um UPC e ler-se como UPC, mas o prefixo de fabricante não estará registado em seu nome e o POS do retalhista pode marcá-lo como produto desconhecido ou recusar-se a aceitá-lo. Para controlo interno de ativos, catálogos de biblioteca, badges de conferência, etiquetas de sala de aula e usos não-retalho semelhantes, a questão da GS1 é irrelevante, gere os dígitos que quiser.

Casos de uso comuns

Como escolher o formato certo

Para uso geral (etiquetas de ativos, inventário interno, badges de conferência), escolha Code 128: ASCII completo, alta densidade, funciona em todo o lado. Para produtos de retalho vendidos em lojas, escolha UPC-A (EUA/Canadá) ou EAN-13 (resto do mundo), e lembre-se que precisa de um prefixo de fabricante registado pela GS1. Para cartões de envio, escolha ITF-14 (o padrão para cartões exteriores que contêm produtos de retalho). Para aplicações logísticas e militares em que o Code 39 seja imposto por um sistema existente, escolha Code 39. Para produtos pequenos em que um EAN-13 completo não caiba, escolha EAN-8. O Pharmacode é de nicho e saberá se precisa dele. A regra «Code 128 por defeito» cobre a maioria dos casos não-retalho.

PNG vs SVG, escolha a saída certa

SVG é a escolha certa para impressão e para qualquer contexto em que o código possa vir a ser redimensionado. SVG é vetorial: as larguras das barras mantêm-se nítidas em qualquer escala, de uma miniatura de 1 cm numa etiqueta a um cartaz de 50 cm. O ficheiro é XML simples (tipicamente 2-5 KB para um único código) e pode ser embebido inline em HTML, aberto em software de design vetorial (Illustrator, Inkscape, Affinity Designer) ou enviado para tipografias comerciais sem perda de qualidade. PNG é a escolha certa para contextos digitais em que o tamanho é fixo e o destinatário não suporta SVG: e-mails, software POS antigo, apps de impressão de etiquetas de secretária que esperam rasterizados. A saída PNG aqui é renderizada ao dobro da resolução para nitidez retina; o ficheiro tem tipicamente 5-15 KB. A regra geral: se vai imprimir, escolha SVG; se vai enviar por e-mail ou colar numa app antiga, escolha PNG.

Privacidade: porque «só no navegador» importa aqui

Os códigos de barras em si não são secretos, mas os valores codificados muitas vezes são. Códigos internos de ativos revelam estrutura organizacional. As etiquetas de envio revelam relações com fornecedores e endereços de clientes. Os códigos de empréstimo de biblioteca revelam padrões de leitura dos utentes. Gerar códigos num servidor significa que os valores atravessam a rede e acabam em registos do servidor. Esta ferramenta codifica tudo no seu navegador via JsBarcode, verifique no separador Rede das DevTools enquanto carrega em Gerar, ou ponha a página offline (modo de avião) depois de carregada e a ferramenta continua a funcionar. Seguro para etiquetagem interna de SKU, códigos de controlo de ativos, geração de badges de conferência ou qualquer valor de código de barras que não queira ver copiado para o disco rígido de um estranho.

Perguntas frequentes

Que formato devo usar?

Code 128 é o padrão mais seguro para uso geral, ASCII completo, alta densidade, funciona em qualquer leitor moderno. Escolha EAN-13 (internacional) ou UPC-A (EUA/Canadá) para códigos de produtos de retalho, mas lembre-se que precisa de adesão à GS1 para que o prefixo de fabricante seja válido. Escolha Code 39 para sistemas logísticos, militares ou de biblioteca que o imponham. Escolha ITF-14 para cartões de envio. EAN-8 para produtos muito pequenos. O Pharmacode é de nicho, apenas farmacêutico.

Posso vender produtos com estes códigos?

Para uso interno, controlo de ativos, badges de conferência e outros usos não-retalho semelhantes, sim, livremente. Para produtos que tencione vender em lojas onde o código será lido na caixa e consultado no ficheiro mestre de produtos do retalhista, precisa de um prefixo de fabricante real registado pela GS1. Sem isso, o EAN-13 ou UPC-A que gerar aqui será lido corretamente (o formato é válido) mas os dígitos não estarão registados em seu nome em nenhum sistema de retalhista, e o POS marcá-lo-á como produto desconhecido. A adesão à GS1 começa por volta dos 250 a 1000 dólares anuais consoante a dimensão da empresa e o número de produtos.

PNG ou SVG, qual devo descarregar?

SVG para tudo o que vai ser impresso (vetorial, escala perfeitamente para qualquer tamanho, abre limpo no Illustrator/Inkscape/InDesign, aceite pelas tipografias comerciais). PNG para tudo o que é digital onde o tamanho é fixo e o destino não suporta SVG (apps POS antigas, clientes de e-mail que removem SVG, embeds simples em sites). O PNG é renderizado ao dobro da resolução para nitidez retina; o SVG é XML simples com 2-5 KB.

O que é a «zona muda» e preciso de a adicionar?

A zona muda é o espaço em branco necessário nas margens esquerda e direita de qualquer código de barras 1D, pelo menos 10× a largura da barra mais estreita de cada lado. Sem ela, os leitores não conseguem detetar de forma fiável onde o código começa e termina. Esta ferramenta inclui as zonas mudas adequadas automaticamente nas saídas PNG e SVG. A falha de produção mais comum é apertar o código impresso contra outro elemento da etiqueta para poupar espaço, partindo a zona muda, deixe as margens intactas ao desenhar as suas etiquetas.

Qual é a diferença entre UPC-A e EAN-13?

UPC-A tem 12 dígitos e é o padrão de retalho dos EUA/Canadá (introduzido em 1973, primeira leitura comercial a 26 de junho de 1974 no Marsh Supermarket em Troy, Ohio). EAN-13 tem 13 dígitos, adotado internacionalmente em 1976/1977. O UPC-A de 12 dígitos pode ser expresso como EAN-13 de 13 dígitos antepondo um 0, a maioria dos sistemas POS modernos lida com ambos de forma transparente. O dígito extra no EAN-13 é o prefixo de código de país (EUA/Canadá = 0, França = 30-37, Alemanha = 40-44, Reino Unido = 50, Japão = 49 ou 45, etc.). Ambos estão agora sob o chapéu GS1 GTIN.

Os meus valores de código de barras são enviados?

Não. A geração corre inteiramente no seu navegador via JsBarcode. Os valores que introduz nunca atravessam a rede, verifique no separador Rede das DevTools enquanto carrega em Gerar, ou ponha a página offline (modo de avião) depois de carregada e a ferramenta continua a funcionar. Seguro para códigos SKU internos, IDs de controlo de ativos, dados de badges de conferência ou qualquer valor que não queira ver copiado para o disco rígido de um estranho.

Ferramentas relacionadas