Clipper On Line • Ver Tópico - Fonte Código de Barras Code128

Fonte Código de Barras Code128

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Fonte Código de Barras Code128

Mensagempor andersoncamilo » 13 Mar 2012 15:17

Boa tarde a todos,

Estou tendo problemas com a leitutra do codigo de barras do danfe gerado pelo hbnfe, utilizo xharbour 1.21 e a fonte Code128bWin com o tamanho 8, se alguém tiver outra fonte, ou alguma configuração diferente e puder me ajudar eu agradeço.

Obrigado

Anderson Camilo
andersoncamilo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 102
Data de registro: 22 Ago 2004 11:54
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Fonte Código de Barras Code128

Mensagempor andersoncamilo » 20 Mar 2012 08:46

Resolvido

Bom dia a todos,

Na verdade o problema não era a fonte, e sim a falta de codificação do código antes de mandar imprir.

Segue a baixo a rotina para a codificação:

****************************************
function CodificaCode128c(pcCodigoBarra)     
****************************************

&&  Parameters de entrada : O codigo de barras no formato Code128C "somente numeros" campo tipo caracter
&&  Retorno               : Retorna o código convertido e com o caracter de START e STOP mais o checksum
&&                        : para impressão do código de barras utilizando a fonte Code128bWin, é necessário
&&                        : para utilizar essa fonte os arquivso Code128bWin.ttf, Code128bWin.afm e Code128bWin.pfb
&& Autor                  : Anderson Camilo
&& Data                   : 19/03/2012
&& Referencia             :  Site/artigo utilizado como referencia, http://grandzebu.net/index.php?page=/informatique/codbar-en/code128.htm  e Outros

local  nI :=0, checksum :=0, nValorCar :=0, cCode128 := '', cCodigoBarra :=''

cCodigoBarra = pcCodigoBarra
if len(cCodigoBarra) > 0    && Verifica se os caracteres são válidos (somente números)
   if int(len(cCodigoBarra) / 2) = len(cCodigoBarra) / 2    && Tem ser par o tamanho do código de barras
      for nI = 1 to len(cCodigoBarra)
          if (Asc( substr ( cCodigoBarra, nI, 1) ) < 48 .or. Asc( substr ( cCodigoBarra, nI, 1) ) > 57)
             nI = 0
            exit
          endif       
      next nI
   endif
   if nI > 0
      nI = 1 &&  nI é o índice da cadeia
      cCode128 = chr(155)
      
      do while nI <= len ( cCodigoBarra )
         nValorCar = val ( substr( cCodigoBarra, nI, 2) )
         if nValorCar = 0
            nValorCar += 128
          elseif nValorCar < 95
                 nValorCar += 32
          else   
                 nValorCar +=  50
         endif
         cCode128 += Chr(nValorCar)
         nI = nI + 2
      enddo
      
      && Calcula o checksum 
      for nI = 1 to len(cCode128)
          nValorCar = asc ( substr( cCode128, nI, 1 ) )
          if nValorCar = 128
             nValorCar = 0
           elseif nValorCar < 127
                  nValorCar -= 32
           else
                  nValorCar -=  50
          endif
               
          if nI = 1
           checksum = nValorCar
          endif          
          checksum = mod( (checksum + (nI - 1) * nValorCar ) , 103)
       next nI
      &&  Cálculo código ASCII do checkSum

       if checksum = 0
          checksum += 128
        elseif checksum < 95
               checksum += 32
        else   
               checksum +=  50
       endif

       && Adiciona o checksum e STOP
   
       cCode128 = cCode128 + Chr(checksum) +  chr(156) 
    endif
endif

return cCode128



Este código ai comtempla somente a codifcação Code128C (Somente Números), se alguém precisar para Code128B (Com letras) tenho ela também.

Obrigado

Anderson Camilo
andersoncamilo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 102
Data de registro: 22 Ago 2004 11:54
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Fonte Código de Barras Code128

Mensagempor hs_paulo » 31 Jan 2019 09:58

Ola Anderson

Estou precisando da rotina 128B letras e numeros.

Obrigado

Paulo
hs_paulo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 25
Data de registro: 02 Set 2015 17:11
Cidade/Estado: Bauru
Curtiu: 24 vezes
Mens.Curtidas: 1 vez




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro