Download - PADRÕES DE CÓDIGO DE BARRAS

Transcript
Page 1: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 1/23

http://www.google.com.br/search?hl=pt-BR&source=hp&q=padrões+de+código+de+barras&btnG=Pesquisa+Google&meta=&aq=0&oq=padroes+de+codi

PADRÕES DE CÓDIGO DE BARRAS

http://www.modulocomercial.com.br/codigo_de_barras.htm

Padrão 25 - foi um dos primeiros e já está desatualizado. Padrão 2/5 intercalado - é utilizado para codificar apenas dígitos numéricos.É utilizado emsegmento bancário ou em aplicações que não requeiram a utilização de letras ou outroscaracteres. Padrão 39 - é utilizado para codificar caracteres alfanuméricos e não tem limite quantidadede caracteres a serem codificados. Padrão 39 com dígito de verificação - é utilizado com dígito de controle para dar maiscontrole e segurança no processo. Padrão 49 - é uma micro simbologia, permitindo a codificação de informações em umespaço reduzido. PDF417 - é uma simbologia que oferece alta capacidade compactação de dados.Permitindo a codificação de milhares de caracteres em alguns centímetrosquadrados, esta simbologia é muito adequada para utilização, por exemplo, emcodificação de notas fiscais. Padrão 128 - admite até 106 caracteres, ocupando uma área de impressão menor que oPadrão 39. Padrão EAN/UCC12 - possui a estrutura do código 128 e tem a vantagem de auto-reconhecimento da estrutura do código de barras com uma tabela de correlação de códigosde quase 50 elementos. Padrão UPC-A e UPC-E - utilizado nos supermercados dos Estados Unidos e Canada,codifica caracteres numéricos. Padrão EAN 13 - é uma expansão do código UPC e é utilizado em todo o mundo, permitindoa codificação de produtos de até 13 dígitos, determinando o país/empresa/produto e dígito

verificador. Esta simbologia foi adotada como padrão para identificação de produtos de bemde consumo. Padrão EAN 8 - para aplicação em produtos onde só necessite 8 dígitos, é uma versãosimplificada do EAN 13.

Código de barras sem mistérios

http://msdn.microsoft.com/pt-br/library/cc580676.aspx

Page 2: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 2/23

por Luiz Cláudio C. V. da Rocha

Para ler todas as matérias da FórumAccess, assine a revista noendereçohttp://www.forumaccess.com.br/novo/

Este artigo discute: Este artigo usa as seguintes tecnologias:

• Código de barras Access 97, 2000 e XP

 

INTRODUÇÃO

Quem se lembra da operação de varejo no Brasil antes dos anos 90, quando a tecnologia era “proibida” por aqui, sabe a grandeza que representa a automação comercial. Nos supermercados,por exemplo, o funcionário do caixa procurava a etiqueta de preço de cada item e digitava o valorem sua máquina registradora, fazendo a soma. Muito usual também era ver uma empresa do

comércio “fechada para inventário”, visto que o controle era praticamente todo manual edemandava muito tempo, espaço e pessoas. Apenas as lojas menores podiam se dar ao “luxo” deconhecer mais de perto os clientes: anotava-se em sua ficha, ou na caderneta, os produtoscomprados e os pagamentos realizados. Neste quadro cabe muito bem a expressão: “isto é coisado século passado!” Mas lembre-se: faz menos de 15 anos...

Com a (tardia) entrada dos microcomputadores no Brasil, houve uma revolução na administraçãode varejo. O funcionário do caixa, ao invés de simplesmente somar preços, passou a entrar com ocódigo dos produtos, e o sistema informatizado fazia o resto: totalizava as vendas, dava baixa noestoque, emitia relatórios atualizados, informava a comissão dos vendedores e tudo mais. Foi umenorme salto de produtividade. Mesmo assim, ainda era possível melhorar: ao invés do usuárioentrar com os dados, por que não o próprio sistema capturá-lo? É aqui que entra o código debarras, uma tecnologia aplicada a muitas áreas: indústria, comércio, bancos, bibliotecas,hospitais, bancos de sangue, correios, transportes, controles de acesso etc.

Apresentarei neste artigo algumas soluções de códigos de barras aplicadas ao comércio.Inicio da pagina 

O QUE SÃO CÓDIGOS DE BARRAS

Aquela estranha seqüência de barras pretas e brancas, indecifráveis para nós, nada mais é que arepresentação de um pequeno conjunto de números e/ou letras, impressos de uma forma que oleitor óptico possa interpretar: o preto retém a luz e o branco a reflete, de forma que o leitorcapture os sinais e interprete qual a seqüência de números (ou letras) representada pelas barras.

Mesmo sendo um sistema conceitualmente simples, é a base da tecnologia de automaçãocomercial.

Inicio da pagina 

TIPOS DE CÓDIGOS DE BARRAS

O desenho das barras não é sempre igual, há diferentes tipos (simbologias), ou seja, diferentescritérios para combinar barras claras e escuras. A seqüência “123”, por exemplo, pode ter diversasrepresentações, dependendo do tipo de código utilizado.

Um leitor óptico não é capaz de ler qualquer código de barras, ele deve estar devidamentehabilitado (configurado) para cada tipo que lhe for apresentado, a fim de conseguir interpretar ocódigo. Os leitores a laser (muito usados no comércio) geralmente são configurados por comandosde programação impressos em menus (cartões) de códigos de barras, ou então por envio decomandos pela porta serial do micro. A grande maioria das lojas de varejo tem seus equipamentosconfigurados para ler os padrões EAN e UPC, mas geralmente também lêem o código 3 de 9 (cada

tipo será explicado adiante).

Page 3: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 3/23

Além de haver diferentes combinações de barras, alguns códigos possuem um conteúdo de dadospadronizado, ou seja, a seqüência de números representados é organizada de uma determinadaforma (cada posição tem um significado). Isto ocorre, por exemplo, com o EAN13, UPC12 edemais padrões de codificação estabelecidos e controlados internacionalmente. Outros códigos,como o 39, são livres, ou seja, quem for usá-lo tem a liberdade de posicionar os números e letraslivremente.

A principal vantagem de se trabalhar com um padrão internacional rígido é que cada produto teráseu código exclusivo, aplicável no mundo inteiro, sem repetição, o que possibilita a integração e atroca de informações entre os vários elos da cadeia produtiva: do fabricante ao consumidor final, ocódigo acompanha o produto. A contrapartida é a burocracia: a empresa deve se cadastrar noórgão responsável (EAN - European Article Numbering - responsável pelos códigos no mundointeiro, exceto Estados Unidos e Canadá, em que o responsável é o UCC - Uniform Code Council),a fim de receber um ID que a identificará exclusivamente dentro do código de barras. É evidenteque sem tal burocracia seria impossível existir este sistema organizado de codificação em escalaglobal.

Já os códigos livres (não padronizados) têm a vantagem de permitir sua personalização, criandouma lógica para incluir todas as informações que precisa (veja o Box 1 - “Código internopersonalizado”). É possível, por exemplo, criar um código que contenha a sigla do fornecedor, ocódigo da categoria, o código da linha, o código da cor, e qualquer informação que permita àempresa descrever um produto apenas olhando seu código. É possível, até mesmo, incluir neste

código o número de série do produto, para acompanhá-lo individualmente, fornecendo umainformação valiosa à empresa. Por outro lado, a abrangência do código não padronizado se limitaà própria empresa (ou a um determinado grupo que compartilhe a mesma lógica em seu sistema).

Inicio da pagina 

O PAPEL DO APLICATIVO

É muito importante entender que quem deve se preocupar com a leitura das barras é o leitoróptico: ele foi criado para esta única finalidade. O aplicativo, por sua vez, deve se preocupar ementender o conteúdo que as barras representam, ou seja, os caracteres que foram interpretadospelo leitor óptico.

Eu friso este ponto porque é justamente nele que muitos desenvolvedores ficam em dúvida:

 “como fazer meu aplicativo entender as barras?” A resposta é simples: o aplicativo não precisaentender as barras, mas sim o conteúdo delas. O leitor óptico faz a leitura e retorna o resultado(ex: “9771414305005”). O trabalho do aplicativo deve ser tratar o “9771414305005” (buscando oID na tabela de produtos, gravando nos detalhes de venda, imprimindo o item no cupom fiscal,etc.).

Inicio da pagina 

CÓDIGOS MAIS COMUNS NO COMÉRCIO

EAN13: é o código mais usado na identificação de itens comerciais. É composto de 13 dígitos: os 3primeiros representam o país (o Brasil é 789), os 4 seguintes representam o código da empresafiliada à EAN, os próximos 5 representam o código do item comercial dentro da empresa, e o 13ºdígito é o verificador, obtido por meio de cálculo algoritmo (ver edição 23 da Fórum Access para

mais informações sobre o cálculo). De acordo com a grade de itens da empresa (quantidade), acomposição pode ser mudada para que o item comercial tenha de 3 a 6 dígitos, e a empresa tenha6 a 3. Ou seja, a combinação de código da empresa + código do item deve ter 9 dígitos.

EAN8: é a versão reduzida do EAN13, para embalagens pequenas. Ele não inclui o código daempresa, apenas o do país (3 dígitos), do produto (4 dígitos) e dígito verificador. Como não há ocódigo da empresa, o licenciamento de numerações é integralmente controlado pela EAN,mediante comprovação técnica de necessidade, taxa de licenciamento e anuidade de manutenção,pois há poucos códigos disponíveis por país.

UPC-A: tem a mesma aplicação do EAN13, mas é usado para itens comercializados nos EstadosUnidos e Canadá. Tem 1 dígito que representa a categoria do produto, 5 dígitos para aidentificação do fabricante, 5 dígitos para a identificação do produto e 1 dígito verificador(totalizando 12). Não há identificação do país, pois o cadastro de filiados é único para EUA eCanadá.

UPC-E: é a versão UPC de 8 dígitos, obtida suprimindo 4 zeros do UPC-E (entre número daempresa e número do item).

Page 4: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 4/23

3 de 9: é um código simples de ser gerado, aceita letras e números e é livre. Sua simbologia nãoé densa, dispensando o uso de dígito verificador (que é usado nos outros padrões para garantirque a leitura foi feita corretamente). Costuma ser usado para codificações internas de empresasque necessitam de caracteres alfa-numéricos (indústrias, companhias aéreas, etc.), mas tambémé usado em aplicações comerciais.

Em geral, os sistemas no Brasil estão modelados para receber código de 13 posições (embora a

EAN recomende 14), o que possibilita trabalhar também com códigos de 8 (EAN8/UPC-E) e 12(UPC-A) posições. O mesmo não se aplica aos sistemas norte-americanos, configurados parareceber apenas 12 posições, dificultando o trabalho com EAN13. Entretanto, há um acordo entre aEAN e a UCC para que esta situação seja corrigida até 2005.

Inicio da pagina 

GERANDO CÓDIGO DE BARRAS NO ACCESS

Existem diferentes maneiras de se gerar códigos de barras a partir do Access:

a) Usar fontes TrueType de código de barras: no relatório cria-se uma caixa de texto e se ajusta apropriedade Nome da Fonte. Embora seja uma solução aparentemente simples, é importantelembrar que cada tipo de código de barras tem suas especificações, como caracteres de abertura e

fechamento, tamanho, etc., e o relatório deve considerá-las. Além disto, geralmente as fontes nãosão gratuitas (é preciso comprá-las), salvo algumas exceções.

b) Usar código VBA para gerar as barras: é a solução mais interessante, pois é interna do próprioaplicativo, não sendo preciso licenciar e cuidar da distribuição de componentes externos.Entretanto, as rotinas de geração das barras são bastante complexas, estando além do escopo dodia a dia do desenvolvedor.

c) Usar um componente externo (OCX ou DLL) que tenha todas as regras encapsuladas, para quecom poucas linhas de código as barras sejam geradas sem dificuldade. É uma boa solução paraquem pretende trabalhar com vários padrões diferentes, pois tira do desenvolvedor a necessidadede lidar com as inúmeras particularidades e regras de cada tipo. Os componentes mais completosnão são gratuitos.

Inicio da pagina 

GERANDO EAN13

Na edição 23 da FórumAccess foi publicado um artigo pioneiro sobre código de barras no Access,de autoria do Mauro Possato, o qual considero de leitura obrigatória a quem vai trabalhar comeste recurso. O artigo explica o cálculo do dígito verificador e todo o código necessário para segerar as etiquetas, e ainda inclui um MDB de exemplo (Ean13.mdb), que pode ser encontrado noCD Enciclopédia FórumAccess (outra fonte indispensável de estudo), ou na seção de downloads doFórumAccess (www.forumaccess.com.br/novo/downloads.asp, no link da Revista 23).

Uma outra forma de se gerar código de barras EAN13 é usar o ActiveX Chromatick BarCode, que éfreeware e pode ser encontrado para download em sites como VbMania e VbBrasil, e também foiincluído no arquivo de exemplo deste artigo.

Para usá-lo, copie os arquivos CTKBCDC.OCX e CTKBCDC.DEP na pasta de sistema do Windows

(c:\Windows\System ou c:\WINNT\System32, dependendo do sistema operacional) e faça oregistro digitando Regsvr32 CTKBCDC.ocx na linha de comando do Iniciar/Executar do Windows(Figura 1).

 Figura 1 - Registro do componente

Page 5: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 5/23

Feito o registro, os controles dos códigos de barras poderão ser colocados em relatórios do Accesscomo qualquer outro controle, bastando abrir a caixa de ferramentas e clicar no botão MaisControles (Figura 2), selecionar na lista e dimensionar no relatório.

 Figura 2 - Listagem “Mais Controles” 

No arquivo de exemplo deste artigo, que deve ser usado para acompanhar os próximos itens, criei

um relatório a partir do Assistente de Etiqueta e incluí os campos de código do produto (CodBarras- deixei invisível), descrição e preço. Coloquei o controle ctk_BarCode.EAN13 para exibir as barras(Figura 3), dando-lhe o nome de ctkEAN13.

 Figura 3 - Estrutura do relatório

Veja que o controle ActiveX fica configurado para imprimir zeros, então é preciso informar, emtempo de execução, o valor que deverá estar contidos nas barras (ou seja, o conteúdo do campoCodBarras), na propriedade Code. Para isto, pode ser usado o evento Ao Imprimir da seçãodetalhe, com a seguinte linha de código:

Me.ctkEAN13.Code = Me.CodBarrasO resultado do relatório de etiquetas pode ser visto na Figura 4.

 Figura 4 - Relatório de etiquetas EAN13

Inicio da pagina 

GERANDO EAN8

Page 6: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 6/23

Para gerar o código EAN8, você pode usar o mesmo componente, porém incluindo o controlectk_BarCode.EAN8 no relatório, dando-lhe o nome de ctkEAN8. Siga os mesmos passos descritosanteriormente, lembrando de ajustar o nome do controle na linha de código do evento AoImprimir da seção:

Me.ctkEAN8.Code = Me.CodBarrasO código de barras EAN8 tem a aparência mostrada na Figura 5.

 Figura 5 - Relatório EAN8

Inicio da pagina 

GERANDO CÓDIGO 3 DE 9

O código de barras 3 de 9 (ou Barcode39) é bastante usado para códigos personalizados, e tem aflexibilidade de imprimir letras e caracteres especiais, aumentando bastante a possibilidade deaplicação.

Uma das formas de gerá-lo é usar o mesmo componente ctk_BarCode já explicado nos tópicosanteriores, porém selecionando o controle Code39. Como neste código os caracteres não sãoexibidos em formato humano-legível, é recomendável deixar visível uma caixa de texto com ocódigo do produto, para que o operador possa digitá-lo caso a leitura óptica falhe.

Entretanto, a melhor forma de se trabalhar no Access com o Barcode39 é por meio de código. Noarquivo de exemplo deste artigo coloquei as funções necessárias para isto: a função MD_BC39retorna a composição binária (de 9 dígitos) de cada letra, número e caractere especial suportadospelo Barcode39. Já a função MD_Barcode39 usa essa composição de binários para gerar as barraspretas e brancas em um controle do relatório (o nome do controle e do relatório são passadoscomo parâmetros). Não coloquei estas funções aqui porque são extensas e estão fora do escopodo artigo, mas quem tiver curiosidade pode analisar o módulo basCodBar39 do arquivo deexemplo. Já no relatório, basta criar uma caixa de texto (Barcode39) para receber as barras, eoutra com o nome (CodBarras) para exibir o código em formato humano-legível. No evento AoImprimir da seção detalhe, coloque uma linha de código para chamar a função MD_Barcode39:

Call MD_Barcode39(Me.Barcode39, Me)O primeiro parâmetro é o nome do controle em que aparecerão as barras (Barcode39), o segundoparâmetro faz referência ao relatório atual (Me). O resultado é exibido na Figura 6.

 Figura 6 - Relatório do código 39

Page 7: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 7/23

O código 3 de 9, além de letras e números, também imprime espaço, $ (cifrão), %(porcentagem), + (mais), | (“pipe”), . (ponto), - (hífen) e / (barra).

Uma terceira forma de se trabalhar com o código 39 é usar uma fonte TrueType. É possível fazerdownload de uma fonte gratuita no endereço www.squaregear.net/fonts/free3of9.shtml, a qualtambém foi incluída no arquivo de exemplo deste artigo.

Para usá-la, copie os arquivos FREE3OF9.TTF (Free 3 of 9 - para números) e FRE3OF9X.TTF (Free3 of 9 Extended - alfanumérica) para a pasta de fontes do Windows. Em seguida, abra o Painel deControle e o ícone Fontes. Abra o menu Arquivo/Instalar nova fonte, selecione a pasta de fontes eselecione os dois arquivos TTF, conforme indica a Figura 7.

 Figura 7 - Instalação de fontes TrueType

Com as fontes instaladas, crie uma caixa de texto no relatório do Access e selecione Free 3 of 9Extended como propriedade Nome da Fonte.

Na origem do controle, é necessário colocar os caracteres de abertura e fechamento, que sãosímbolos procurados pelo leitor óptico para iniciar e finalizar a leitura. No caso do código 3 de 9, ocaractere é o asterisco (*). Assim, na origem do controle coloque:

=”*” & [CodBarras] & “*”O resultado deve ser exatamente igual ao que foi mostrado na figura 6, naturalmente.

Observação: se for trabalhar com esta fonte no Word, lembre-se de desabilitar a opção *Negrito*e _itálico_ por formatação real, no menu Ferramentas/Autocorreção/AutoFormatação ao Digitar.

Inicio da pagina 

IMPRESSORA TÉRMICA

Para quem precisa imprimir grande quantidade de etiquetas, uma solução mais econômica é usaruma impressora térmica (etiquetadora). Embora seja um equipamento bem mais caro que umaimpressora jato de tinta comum, a economia com suprimentos (2 ou 3 cartuchos de tinta custammais que a própria impressora) é grande. Essas etiquetadoras são muito comuns em aeroportos,usadas para emitir as etiquetas com a sigla do aeroporto de destino afixadas nas malas, etambém os cartões de embarque. Funcionam com um rolo de etiquetas e outro de fita preta(ribbon), suprimentos de baixo custo. O ribbon é aquecido na cabeça de impressão, de forma agravar texto, barras e imagens na etiqueta. O sensor do equipamento pode detectar onde acabauma etiqueta e começa outra.

O equipamento é ligado na porta serial do micro, e para controlá-lo pode-se usar o ActiveXMSCOMM32.OCX, que vem no Visual Basic, e também está disponível no material de download daedição 35 da FórumAccess (no artigo “Coletando dados com Access”).

O código a seguir pode ser usado para imprimir etiquetas em impressora Datamax, uma das maisusadas no mercado:

Private Sub ImprimeTeste()

Page 8: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 8/23

Dim intPorta As IntegerDim strTexto As StringOn Error GoTo TratamentoMSComm1.CommPort = 1 ‘COM1‘Configura a porta serialMSComm1.Settings = “9600,n,8,2”

‘Controla o Fluxo de DadosMSComm1.Handshaking = comRTSXOnXOff‘Abre a porta serialMSComm1.PortOpen = True‘Define um avanço no papel após a impressãoMSComm1.Output = “~f256” & Chr$(13)‘Define o Off set de colunaMSComm1.Output = “~LC0005” & Chr$(13)‘Define o Off set de linhaMSComm1.Output = “R0000” & Chr$(13)‘Define o tamanho do Pixel.MSComm1.Output = “D11” & Chr$(13)‘Seleciona o zero não cortado

MSComm1.Output = “z” & Chr$(13)‘Define o calor de impressão.MSComm1.Output = “H09” & Chr$(13)‘CAMPOS DA ETIQUETA:MSComm1.Output = “102200100650025” & _“SOFTWARE” & Chr$(13) ‘CategoriaMSComm1.Output = “102200100550015” & _“VISUAL BASIC” & Chr$(13)MSComm1.Output = “102200100550095” & _“MICROSOFT” & Chr$(13) ‘MarcaMSComm1.Output = “102200100450015” & _“STANDARD” & Chr$(13) ‘TipoMSComm1.Output = “102200100450105” & _“2003” & Chr$(13) ‘VersãoMSComm1.Output = “102200100350015” & _“.NET” & Chr$(13) ‘FamíliaMSComm1.Output = “102200100350095” & _“65955690” & Chr$(13) ‘CódigoMSComm1.Output = “102200100250015” & _“FERRAMENTA DESENV” & Chr$(13) ‘Descrição‘Código de barras (segunda letra minúscula)MSComm1.Output = “1e1202500000015” & _“65955690” & Chr$(13) ‘letra e: padrão 128MSComm1.Output = “121100100150145” & _“R$” & Chr$(13) ‘Preço (cifrão)MSComm1.Output = “121100100050145” & _“500” & Chr$(13) ‘PreçoMSComm1.Output = “Q” & Format(1, “0000”) & _Chr$(13) ‘Quantidade de cópias da etiqueta‘Termina a transmissão e inicia a impressãoMSComm1.Output = “E” & Chr$(13)Do Until MSComm1.OutBufferCount = 0LoopMSComm1.PortOpen = False ‘Fecha a portaExit SubTratamento:If Err = 8002 ThenMsgBox “Porta serial inválida.”Exit SubEnd If

MsgBox Err.DescriptionEnd Sub

Page 9: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 9/23

Algumas impressoras não usam o til “~” como caractere inicial, mas sim o “^B”. Neste caso, o tildeve ser trocado por Chr(02) no código anterior.

Na linha de comando do código de barras, a letra “e” representa o código de barras 128, maspoderiam ser usadas as seguintes letras: “a” - código 39, “b” - UPC-A, “c” - UPC-E, “d” - I25, “f” -EAN-13, “g” - EAN-8, “h” - HIBC, “i” - Codabar, “j” - I25+CD, “k” - Plessey, “l” - Case, “m” -UPC+2, “n” - UPC+5, “o” - 93, “v” - UPC peso variável, “q” - UCC-EAN128.

Dica: a cabeça de impressão tem vida útil. Após alguns milhares de etiquetas impressas, ela vai sedesgastando e as etiquetas começam a apresentar algumas falhas (riscos brancos bem finos). Selevar na assistência técnica, eles vão sugerir a troca da peça (que é bastante cara). Entretanto,como as etiquetas geralmente são bem mais estreitas que o cabeçote, é possível posicionar o rolointeiro mais à direita e configurar o Off-Set de coluna (ver código anterior) para que a impressãocomece em outro lugar. Desta forma você “foge” das falhas e aumenta bastante a vida útil dapeça, trocando-a apenas quando estiver inteiramente gasta. Por isto, procure sempre começar aimprimir em um dos cantos.

Inicio da pagina 

ELABORANDO CÓDIGOS INTERNOS

Embora a grande maioria dos produtos em circulação no comércio já tenha um código de barrasimpresso pelo fabricante, em algumas situações a empresa pode ter a necessidade de fazer umcontrole interno.

Situação 1: imagine uma locadora de vídeos que queira controlar os itens que estão locados, osque não foram pagos ainda, as devoluções atrasadas, etc., e que tudo que ela tenha inicialmenteseja apenas um cadastro de filmes, em que cada título possui um código de 6 dígitos (FFFFFF).

Este código de 6 dígitos (ex: 058489) seria suficiente, por exemplo, para informar ao cliente seele já locou o filme antes (basta uma consulta à base de dados), mas não possibilita fazer todosos controles que a empresa precisa.

Muitos títulos disponíveis existem na versão vídeo (VHS) e DVD, e a empresa pode querer tratá-los de forma diferente. Para indicar o tipo, é possível acrescentar uma letra ao código, como “D” para DVD e “V” para VHS: FFFFFFT (ex: 058489D). Assim, a empresa pode controlar não apenaspreços diferentes, mas também analisar qual tipo tem sido mais procurado, quais itens estãodisponíveis em uma única versão, quais itens merecem uma atualização para DVD, etc.

Por fim, cada filme pode ter mais de uma cópia, e a locadora precisa de um controle individual decada item. Para isto, pode acrescentar dois dígitos ao código, a fim de numerar cada unidade deum mesmo filme (01, 02, 03...): FFFFFFTUU. Assim, se a locadora adquirir 3 DVDs do filme058489, a numeração de cada um seria 058489D01, 058489D02 e 058489D03.

Desta forma, todos os itens estariam identificados, e se o banco de dados estiver devidamentemodelado, seria possível, por exemplo, a partir de uma leitura óptica no balcão de atendimento,identificar na hora se todos os filmes estão sendo devolvidos pelo cliente, quais estão dentro doprazo, quais foram pagos, etc.

Situação 2: uma empresa que fabrica e comercializa roupas no varejo precisa codificar seusprodutos, visando melhor controle administrativo e planejamento de produção. Como o códigoserá criado internamente, é interessante um mecanismo que permita identificar todos os atributos

do produto, como no formato LYYTTTMMCCSS, em que:

- L: indica a coleção (verão, inverno, etc.).

- YY: indica o ano (2001, 2002, 2003).

- TTT: indica a categoria (camisa, calça, etc.).

- MM: indica o material (lã, seda, algodão, etc.).

- CC: indica a cor (branca, preta, etc.)

- SS: indica o tamanho (grande, pequeno, 40, 42, etc.).

Exemplo: 103002450278 - coleção verão 2003, calça, linho, preta, tamanho 44.

Um código deste tipo, além de facilitar a identificação dos itens no ponto de vendas (auxiliando otrabalho do vendedor), simplifica também a criação e análise dos relatórios gerenciais (itens de

Page 10: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 10/23

maior giro, tendências de cada estação, cores e materiais mais procurados, tamanhos que nãovendem, e muitas outras opções).

Inicio da pagina 

CÓDIGOS DE BARRAS COM ERROS?

Em uma edição da Harvard Business Review, um artigo sobre cadeias de suprimentos alertousobre o problema de erros de inventário que algumas grandes empresas americanas estavamenfrentando, mesmo trabalhando com estoque informatizado por códigos de barras. Estariam asleituras com erro?

A resposta é negativa: o erro continuava sendo dos operadores. O problema mais freqüenteencontrado é a estocagem em lugar errado: na pressa do dia a dia, muitos produtos sãoguardados em qualquer canto, e na hora da contagem não são encontrados, pois não estão

 juntos. Outro problema muito comum está no caixa: o funcionário vê duas embalagens iguais,então ao invés de passar uma a uma no leitor óptico, passa duas vezes o mesmo produto, para irmais rápido. Entretanto, um era iogurte de morango, o outro era de frutas vermelhas...

Resumo: ao implantar um sistema de códigos de barras, é muito importante dar treinamento atodos os funcionários, até mesmo àqueles que aparentemente não precisam. Às vezes um único

minuto de explicação pode poupar horas de tempo desperdiçado no futuro.Inicio da pagina 

CONCLUSÃO

Espero ter contribuído aqui com o seu entendimento sobre a tecnologia de código de barras, queembora não seja nova, ainda é um mistério para muitos desenvolvedores. Conforme o artigomostrou, há diversas maneiras de se trabalhar com estes recursos. O importante é saber analisaro caso concreto e escolher a solução que melhor atenda os objetivos.

Embora haja muitos detalhes e regras, o conceito de funcionamento do código de barras ésimples. Todas as vantagens aqui apresentadas (produtividade, melhor qualidade dasinformações, cruzamento de dados, etc.) não derivam do código de barras, mas sim de um bancode dados bem modelado. Sem isto, as barras pouco ajudarão. Juntando as duas partes (entradade dados com qualidade e boa modelagem do banco de dados), o sistema será uma boaferramenta de gestão, e os relatórios serão mais confiáveis.

Matérias Relacionadas:

Revista 23 - “Código de barras EAN13” 

Revista 35 - “Coletores de dados” 

Revista 40 - “Código de barras no VB/Crystal Reports” 

Revista 41 - “Boletos bancários no Access” 

Para se aprofundar:

Site EAN Brasil: www.eanbrasil.com.br

* Luiz Cláudio C. V. da Rocha ([email protected]) é administrador de empresas e advogado,atua na área de desenvolvimento de sistemas e é colaborador no GD FórumAccess.

Inicio da pagina 

DISPONÍVEL PARA DOWNLOAD

CODBARRAS_LC.EXE (Access 97, 2000 e XP) Disponível para download emwww.forumaccess.com.br

Page 11: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 11/23

Código de Barras - Conceitos Básicos e Utilização no VBhttp://www.macoratti.net/cod_bar.htm

Vou deixar bem claro uma coisa antes de iniciar o artigo: devido a complexidade e

extensão do assunto nosso objetivo principal será abordar os conceitos básicos edar um orientação básica para que cada um , na medida de sua necessidade saibaonde procurar as informações. Para aplicações comerciais existem muitassoluções ,e , cada caso é um caso particular.

Para imprimir códigos de barras no Visual Basic e no Crystal Reports usaremosfontes específicas para este propósito , talvez essa não seja a solução para o seuproblema , mas que fique bem claro que para uso comercial um componente deterceiros quase sempre é a melhor opção.

Por questão de espaço estarei disponibilizando somente parte das fontes usadas.Todas as fontes e manuais de referência para código de barras estão presentes

no Super CD VB - 2001.

Conceitos Básicos

Para compreender como as informações são codificadas em código de barra éfundamental que se tenha os seguintes conceitos. Vejamos os principais:

Barra - Consiste na parte escura do código(normalmente preta), elaabsorve a luz e codifica um em cada modulo de barra .

Espaço - Consiste na parte clara do código (geralmente o fundo que o

código é impresso) , ele reflete a luz e cada modulo é codificado comozero.

Caractere - Cada numero ou letra codificado com barra e espaço. Cada caracterepode ser modificado por tantos “1” ou “0” quantos forem os módulos contidos nasua codificação.

Caractere inicial final - Indicam ao leitor de código o respectivamente o inicio eo fim do código estes caractere pode ser representado por uma letra ,um numeroou um outro símbolo dependendo do padrão do código em questão.

Separadores - Os separadores serve para indicar as extremidade do código eindicar ao leitor o sentido que o código esta sendo lido. Este separadores servetambém para permitir que o código seja lido nos dois sentidos.

 

Page 12: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 12/23

Zonas mudas - Também conhecida como Quites Zones, são nada mais quemargens antes do caractere inicial e depois do caractere finalformadas por espaços. Elas são extremamente importantes para oreconhecimento do código pôr parte do leitor, e se forem excluídaspoderão impossibilitar a interpretação do código de barra, gerando

assim, uma leitura nula.

Sinais de enquadramento - Delimitam uma área retangular da qual deveestar contidos todos os elementos de código e somente ele.

Densidade do código de barra - É caracterizada pela relação entre aquantidade de módulos ou caracteres e o espaço ocupado pelosmesmo uma vez impressos.

Modulo - O modulo consiste no elemento mais estreito do código, seja ele umabarra ou espaço. Os separadores, as zonas mudas, os caracteres especiais,ou seja, todos os elementos que compõem o código de barra são múltiplos domodulo quanto a largura. Isto posto, podemos dizer que o modulo é a unidade

mínima e básica componente do código de barra cujo tamanho e definidodiretamente pela densidade do código.

Flag - Ele é empregado no sistema EAN no inicio do código para indica o país deorigem do produto. Já no UPC ele também situa no inicio do código mas ele indica otipo de produto.

Dígito verificador - utilizado para detectar erros durante a varredura, evitandoassim a leitura errônea, e também adulterações, ele é constituído pôr um elementoincluído no código que é calculado a parir de um algoritmo que emprega os demais

números do código.

Page 13: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 13/23

 

Como os dados são codificados em barras

Pôr uma mera convenção, identificaremos o digito zero como uma seqüênciade cinco barras :barra estreita, barra estreita, barra larga, barra larga e

barra estreita, espaçadas por espaços em branco. Assim, o digito 0 codificadoficaria dessa maneira:

 

Os digito de 0 - 9 ficaria :

Page 14: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 14/23

 

O número 1998 ficaria :

 

COMO OS CÓDIGOS DE BARRAS SÃO LIDOS

Para compreender como os códigos de barra são lidos deve-se primeiroentender dois conceitos : leitura e codificação.

Leitura

Um dispositivo de leitura de código de barra ele transforma os dados codificadoem barras em sinais elétricos de duração proporcionais as barras. Vejamos melhoristo observando o funcionamento de uma caneta ótica.

A caneta ótica e um dispositivo leitor de código de barra que tem em sua pontaum emissor de luz normalmente vermelha e um sensor para receber a reflexãodessa luz (ou não).Assim se a caneta ótica for colocada em uma superfície branca ,a luz emitida vai refletir na superfície e o sensor vai captar essa reflexão e geraraum sinal elétrico que corresponde a superfície branca. De maneira oposta , se acaneta for posicionada em cima da superfície escura, normalmente preta, a luz

emitida da caneta será absorvida

e o sensor não recebera nenhum reflexo, e o sensor ira gerar um sinal elétricocorrespondente a cor preta. Se a caneta for passada sobre uma etiqueta de códigode barra com velocidade constante , a caneta irá gerar uma seqüência de sinaiselétricos conforme a mesma vai passando pelas barras (largas e finas) pretas eespaços em branco.

Através da luz refletida pelos módulos que compõem os espaço, ou pela suaausência na barras, o leitor interpreta o código. A interpretação acontece atravésdo uso de um conversor analógico/ digital que transforma os sinais

elétricos analógico produzido pela luz recebida pôr meio de um sensor fotoelétrico,em um sinal digital (sucessão de 0 e 1 em forma de pulso) e que na ausência da luz

Page 15: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 15/23

refletida gera um outro sinal digital que caracteriza a barra, assim, cada caracteredo código é interpretado como um numero binário, onde cada modulo reproduz umdigito 0 ( reflexão da luz pelo código, ou seja , espaço no código ), ou um digito 1(absorção da luz pelo código, ou seja, barra no código). Observe a figura abaixo:

Decodificação

Decodificar um código de barra é transformar os sinais elétricos de umdispositivo leitor de código de barra em um caractere correspondente de acordocom o padrão do código utilizado. Assim, no exemplo anterior , a decodificação docódigo lido se daria da seguinte maneira: o decodificador obtém as informações :barra estreita, barra estreita, barra larga, barra larga e barra estreita, e utilizando-se a tabela de codificação do código 25, pôr exemplo, obtém como caractere lido odigito 0 .

Após uma etiqueta ser lida e de codificada, o resultado pode ser transferido

para o equipamento de (PDV, microcomputador, etc.) de diversas maneiras taiscomo : via teclado, via interface RS-232C (serial) ou outra interface especifica taiscomo placas particulares ou interface joystick, por exemplo.

Códigos de barras mais utilizados no Brasil 

A seguir os principais códigos de barras usados no país :

25 Intercalado - Utilizado quando se desejam imprimir apenas dígitosnuméricos, é muito utilizado em aplicações comerciais.

39 - Utilizado quando se desejam imprimir caracteres alfa-numéricos; muitoutilizado em aplicações industriais.

39 com dígito de verificação - Utilizado quando se deseja obter maissegurança na leitura dos códigos, pois possui dígito de controle.

EAN-13 - Padrão adotado pela ABAC (EAN Brasil) para codificação de produtosem supermercados, permite a codificação de até 13 dígitos numéricos.

EAN-8 - Versão simplificada do padrão EAN-13, para aplicação em produtos onde

a etiqueta no padrão EAN-13 fique muito grande. Este padrão permite a codificaçãode até 8 dígitos numéricos.

O código de barras usado pelo setor financeiro

Orientação - Ceneaban - Centro Nacional de Estudos da Arrecadação Bancária

O Código de Barras que usado no setor financeiro (Bancos) é do tipo “2 de 5intercalado”.

“2 de 5” - significa que 5 barras definem 1 caracter, sendo que duas delas são

barras largas;

Page 16: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 16/23

“Intercalado” - significa que os espaços entre as barras também temsignificado, de maneira análoga as barras;

Este tipo de código de barras trabalha somente com caracteres numéricos.

a) O tamanho do campo do Código de Barras é de 46 posições, sendo 44 paraconteúdo dos dados mais 2 Bit’s, 1 de Start e outro de Stop. (Favor verificar

documentação mais recente)

b) O Código de Barras deve estar no verso e preferencialmente também noanverso do documento, sendo que no verso deverá estar na parte inferior(centro) e no anverso na parte superior direita, sendo com 12 mm do centro doCódigo de Barras, até a borda do papel, e com 5 mm, no início antes do start e 5mm no mínimo, após o stop de espaço em branco.

c) Para garantir a integridade de leitura do Código de Barras, deverá ser impresso

nas partes, superior e inferior do código, um traço horizontal imediatamenteapós o campo, com a representação numérica, dentro de boxes, abaixo docódigo, se impresso na parte superior do documento e com a representaçãonumérica, dentro de boxes, sobre o código, se impresso na parte inferior dodocumento. Sugerimos inclusão de mensagem nos documentos de arrecadaçãopara que os clientes evitem amassar, dobrar ou perfurar as contas, para nãodanificar o código de barras.

d) Deverá haver uma representação numérica do conteúdo, logo acima do Códigode Barras, ela deverá estar distribuída em campos de 11 posições dentro de

boxes, acrescido de 1 dígito verificador, módulo-10, a cada grupo (vide página10), isto permitirá a digitação dos campos, no caso de rejeição pela leitura deCódigo de Barras.

Os dígitos verificadores não estarão representados no Código de Barras.

e) Identificação da Empresa/Órgão

As posições 16 à 19 do Código de Barras, são destinadas a identificação daEmpresa/Órgão, sendo que, através desta informação, o banco identificará aquem repassar as informações e o crédito.

O órgão responsável pela distribuição e controle desta numeração, seráa Febraban (relação de Empresas/Órgãos já cadastradas).

 f) Data de Vencimento

No caso de ser utilizada a data de vencimento (AAAAMMDD), incluir nas 8primeiras posições do campo livre.

Page 17: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 17/23

Gerando código de barras no VB

Finalmente chegamos a parte mais interessante , a parte prática. Vamos gerar noVisual Basic códigos de barras. Como exemplo iremos gerar o código de barras 39( 3 por 9) . Neste tipo de código de barras podemos codificar caracteresalfanuméricos. Ele suporta codificar 26 letras maiúsculas , 10 dígitos e 7 caracteresespeciais.

Cada caráter é comporto por 5 barras e 4 espaços sendo que cada barra ou espaçopode ser largo ou estreito e 3 dos nove elementos são sempre largos.

Para gerar o código vamos usar fontes True Type , você deve baixar as fontes nofim deste artigo e descompactá-la no diretório\windows\fonts . Feito isto a coisaé muito fácil de fazer. Basta usa a fonte C39HrP36DlTt com o objeto Printer. Nonosso exemplo vamos permitir somente a visualização para mostrar o códigogerado. Vamos ao projeto:

• Inicie um novo projeto no VB e no formulário padrão insira os seguintescontroles: duas caixas texto e duas etiquetas (labels) , um botão decomando e um controle Picturebox. Disponha os controles conforme o

layout a seguir:

• Agora insira o seguinte código ao formulário:

Private Sub Command1_Click() ' codigo do evento click do botão de comando

PrintRoutine pic_codbar

End Sub

Page 18: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 18/23

Private Sub PrintRoutine(objPrint As Object) ' rotina que gera e visualiza ocodigo de barras

objPrint.ClsobjPrint.FontName = Text1.Text ' nome da fonte usada

objPrint.FontSize = 36 ' tamanho da fonte usadaobjPrint.CurrentX = 1.3 ' posicionaobjPrint.CurrentY = 0.3objPrint.Print Text2.Text ' imprime no picturebox codigo geradoCommand1.Enabled = False

End Sub

Private Sub Text2_Change() ' habilita o botão de comandoCommand1.Enabled = True

End Sub• O resultado após a execução do projeto é:

Gostou ??? Calma tem mais...

Veremos outro projeto interessante onde o código é gerado via código. Vamos lá:

• Inicie um novo projeto no VB e no formulário padrão insira os seguintescontroles: um textbox , um picturebox , três botões de opção , e dois botões

de comando. Desenhe os controles no formulário como na figura abaixo:

Page 19: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 19/23

• Agora insira o seguinte código no formulário

Private Sub cmdExit_Click() ' codigo do botão SairEnd

End Sub

Private Sub cmdPrint_Click() 'codigo do botão imprimir

Printer.PaintPicture Picture1, 5000, 5000Printer.EndDoc

End Sub

Private Sub Form_Activate() ' código do evento activate do formuláriooptSize(1) = 1

End Sub

Private Sub optSize_Click(Index As Integer) ' codigo dos botões de opçõesPicture1.ScaleMode = 3

Select Case Index

Case 0Picture1.Height = Picture1.Height * (1.4 * 40 / Picture1.ScaleHeight)Picture1.FontSize = 8

Case 1Picture1.Height = Picture1.Height * (2.4 * 40 / Picture1.ScaleHeight)Picture1.FontSize = 10

Case 2Picture1.Height = Picture1.Height * (3 * 40 / Picture1.ScaleHeight)Picture1.FontSize = 14

End Select

Call Text1_Change

Page 20: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 20/23

End Sub

Private Sub Text1_Change() 'codigo do evento change da caixa de texto

Call DrawBarcode(Text1, Picture1)

MinWidth = 2 * Text1.Left + Text1.Widthpw = 2 * Picture1.Left + Picture1.Widthfw = MinWidthIf pw > fw Then fw = pwForm1.Width = fw

End Sub• A função que gera o código de barras deve ser inserida em um módulo e é

dada a seguir:

Sub DrawBarcode(ByVal bc_string As String, obj As Control)

Dim xpos!, y1!, y2!, dw%, th!, tw, new_string$

'define os padroes do codigoDim bc(90) As Stringbc(1) = "1 1221"bc(2) = "1 1221"bc(48) = "11 221" 'digitosbc(49) = "21 112"bc(50) = "12 112"

bc(51) = "22 111"bc(52) = "11 212"bc(53) = "21 211"bc(54) = "12 211"bc(55) = "11 122"bc(56) = "21 121"bc(57) = "12 121"'letras maiusculasbc(65) = "211 12" 'Abc(66) = "121 12" 'Bbc(67) = "221 11" 'C

bc(68) = "112 12" 'Dbc(69) = "212 11" 'Ebc(70) = "122 11" 'Fbc(71) = "111 22" 'Gbc(72) = "211 21" 'Hbc(73) = "121 21" 'Ibc(74) = "112 21" 'Jbc(75) = "2111 2" 'Kbc(76) = "1211 2" 'Lbc(77) = "2211 1" 'M

bc(78) = "1121 2" 'Nbc(79) = "2121 1" 'O

Page 21: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 21/23

bc(80) = "1221 1" 'Pbc(81) = "1112 2" 'Qbc(82) = "2112 1" 'Rbc(83) = "1212 1" 'Sbc(84) = "1122 1" 'T

bc(85) = "2 1112" 'Ubc(86) = "1 2112" 'Vbc(87) = "2 2111" 'Wbc(88) = "1 1212" 'Xbc(89) = "2 1211" 'Ybc(90) = "1 2211" 'Z'Miscbc(32) = "1 2121" 'espacobc(35) = "" '#bc(36) = "1 1 1 11" '$bc(37) = "11 1 1 1" '%

bc(43) = "1 11 1 1" '+bc(45) = "1 1122" '-bc(47) = "1 1 11 1" '/bc(46) = "2 1121" '.bc(64) = "" '@bc(65) = "1 1221" '*

bc_string = UCase(bc_string)

'dimensoesobj.ScaleMode = 3 'pixelsobj.Clsobj.Picture = Nothingdw = CInt(obj.ScaleHeight / 40) 'espaco entre as barrasIf dw < 1 Then dw = 1'Debug.Print dwth = obj.TextHeight(bc_string) 'altura do textotw = obj.TextWidth(bc_string) ' largura do texto

new_string = Chr$(1) & bc_string & Chr$(2)

y1 = obj.ScaleTopy2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * thobj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth

'desenha cada caractere na string do codigo de barrasxpos = obj.ScaleLeftFor n = 1 To Len(new_string)c = Asc(Mid$(new_string, n, 1))

If c > 90 Then c = 0bc_pattern$ = bc(c)

Page 22: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 22/23

'desenha cada barraFor i = 1 To Len(bc_pattern$)Select Case Mid$(bc_pattern$, i, 1)Case " "

'espacoobj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BFxpos = xpos + dw

Case "1"'espacoobj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BFxpos = xpos + dw

  ' linhaobj.Line (xpos, y1)-(xpos + 1 * dw, y2), &H0&, BFxpos = xpos + dw

Case "2"'espacoobj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BFxpos = xpos + dw'linha largaobj.Line (xpos, y1)-(xpos + 2 * dw, y2), &H0&, BFxpos = xpos + 2 * dw

End SelectNext

Next

'1 mais espacoobj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BFxpos = xpos + dw

'tamanho final e textoobj.Width = (xpos + dw) * obj.Width / obj.ScaleWidthobj.CurrentX = (obj.ScaleWidth - tw) / 2obj.CurrentY = y2 + 0.25 * thobj.Print bc_string

'copia para o clipboardobj.Picture = obj.ImageClipboard.ClearClipboard.SetData obj.Image, 2

End Sub

• Ao digitar o número para gerar o código de barras temos:

Page 23: PADRÕES DE CÓDIGO DE BARRAS

7/16/2019 PADRÕES DE CÓDIGO DE BARRAS

http://slidepdf.com/reader/full/padroes-de-codigo-de-barras 23/23

Curiosidades :

Se tiver tempo e paciência dê uma espiada nos links abaixo :

http://www.milk.com/barcode/ - calcula o digito de controle de código de barras

http://www.marcadabesta.hpg.com.br/codigo_de_barra.htm - a marca da besta -666 e o código de barras.

http://www.eanbrasil.org.br/d02_tecn/barcode_pg2.html - padrão EAN - 13

Gostou ???? tem mais... Aguarde... (Os códigos completos estão no Super CD VB -2001)