Função para gerar Código de Barras

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Função para gerar Código de Barras

Mensagem por Gilberto M Silva »

Caros Colegas,
Estou precisando fazer um programinha que gere um codigo de barras a partir de um número digitado, para etiquetar produtos caseiros.

Gilberto
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Exemplo abaixo:

Código: Selecionar todos

Func geracod
vSOMA=0
vLEO5=78910030
vCOD=0

@ 10,10 get vCOD PICT "9999"
READ

vCOD=STRZERO(vCOD,4)

DO WHILE .T.
   vSOMA=vSOMA+1
   vBARRA1  =SPACE(13)
   vTESTE=STR(vSOMA)

   IF vSOMA=9
      vSOMA=0
      vLEO5=vLEO5+1
   ENDIF
   vBARRA1=STR(vLEO5)+ vCOD +ALLTRIM(vTESTE)
   vLEO=Len((vBARRA1 := AllTrim(vBARRA1)))=13 .and. Right(vBARRA1,1) == CalcEAN13(vBARRA1)

   IF vLEO=.F.
      LOOP
   ELSE
      EXIT
   ENDIF
ENDDO

@ 11,10 SAY vBARRA1  PICT "@!"
INKEY(0)
RETURN

FUNC CalcEAN13(cEAN)
local nSoma := 0
local i
for i := 1 to 12
    nSoma += Val(SubStr(cEAN,i,1)) * if(i%2>0,1,3)
next
return if(nSoma%10=0, "0", Str(((Int(nSoma/10)+1)*10)-nSoma,1))
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem por Gilberto M Silva »

Tem essa função que achei aqui mesmo no forum, mais não estou conseguindo inplementar ela para gerar o codigo de barras.

clear
a__01 := codbar({'7891058489038','7891035209000','7898112300018'},'Epson',05,01,03)
a__02 := codbar({'7891058489038','7891035209000','7898112300018'},'Epson',05,01,03)
a__03 := codbar({'7891058489038','7891035209000','7898112300018'},'Epson',05,01,04)
a__04 := codbar({'7891058489038','7891035209000','7898112300018'},'Epson',05,01,05)
a__05 := codbar({'7891058489038','7891035209000','7898112300018'},'Epson',05,01,06)
a__06 := codbar({'7891035209000','7898112300018'},'Epson',05,01,06)
*
* 7891058489038 = DIPIRONA SàDICA
* 7891035209000 = VEJA MULTI-USO
* 7898112300018 = ALCOOL ARAUCµRIA
*
set cons off
set devi to prin
@ prow(),pcol() say a__01
@ prow(),pcol() say a__02
@ prow(),pcol() say a__03
@ prow(),pcol() say a__04
@ prow(),pcol() say a__05
@ prow(),pcol() say a__06
set cons on
set devi to scree
return


*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³CodBar ³
*ÃÄÂÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³1³aNum³N£mero correspondente ao c¢digo de barras que se quer imprimir ³
*ÃÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³2³cImp³PadrÆo de impressora ([HP] para HP e [Epson] para Epson) ³
*ÃÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³3³nEsq³Quantidade de espa‡os antes de imprimir a primeira coluna (margem) ³
*ÃÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³4³nEsp³Quantidade de espa‡os entre as colunas ³
*ÃÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³5³nAlt³Altura em linhas (6 LPI) total do c¢digo mais o n£mero ³
*ÃÄÅÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³R³Retorna um string correspondente … imagem de impressÆo. Deve ser direcio-³
*³ ³nado diretamente para a impressora. ³
*ÃÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³D³Imprime etiquetas de c¢digo de barras padrÆo HP e Epson ³
*ÃÄÅÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
*³V³1.0³2000.03.02³Maur¡lio J. Franchin Jr. <maurilio@microsafety.com.br> ³
*ÀÄÁÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
function CodBar( aNum, cImp, nEsq, nEsp, nAlt )
local I
local J
local cBar
local aTab
local cFlag
local nPos
local cNum
local aBar
local cLF

aNum:= If( ValType( aNum ) # [A], {}, aNum )
nEsq:= If( ValType( nEsq ) # [N], 0, nEsq )
nEsp:= If( ValType( nEsp ) # [N], 1, nEsp )

for I:= 1 to Len( aNum )
if ValType( aNum ) # [C] .or. Len( aNum ) # 13
return []
endif
next

// Esq A Esq B Dir Flag
//------- ------- ------- ------

aTab:= {;
{ [0001101], [0100111], [1110010], [111111] },; // 0
{ [0011001], [0110011], [1100110], [112122] },; // 1
{ [0010011], [0011011], [1101100], [112212] },; // 2
{ [0111101], [0100001], [1000010], [112221] },; // 3
{ [0100011], [0011101], [1011100], [121122] },; // 4
{ [0110001], [0111001], [1001110], [122112] },; // 5
{ [0101111], [0000101], [1010000], [122211] },; // 6
{ [0111011], [0010001], [1000100], [121212] },; // 7
{ [0110111], [0001001], [1001000], [121221] },; // 8
{ [0001011], [0010111], [1110100], [122121] } } // 9

cNum:= []
cBar:= []
aBar:= {}
cImp:= Upper( cImp )
cLF:= Chr( 13 ) +Chr( 10 )

for I:= 1 to Len( aNum )
cFlag:= aTab[Val( Left( aNum, 1 ) ) +1,4]
cBar += [101]

for J:= 1 to 6
nPos:= Val( SubStr( aNum, J +1, 1 ) ) +1
cBar+= aTab[nPos,Val( SubStr( cFlag, J, 1 ) )]
next

cBar+= [01010]

for J:= 1 to 6
nPos:= Val( SubStr( aNum, J +7, 1 ) ) +1
cBar+= aTab[nPos,3]
next

cBar+= [101]

if cImp = [HP]
cNum+= aNum

if I < Len( aNum )
cBar+= Replicate( [0], nEsp * 8 )
cNum+= Space( nEsp )
endif

elseif Upper( cImp ) = [EPSON]
AAdd( aBar, cBar )
cBar:= []
else
return []
endif
next

if cImp = [HP]
cBar:= Space( nEsq ) +Hp( cBar, nAlt ) +cLF +Space( nEsq ) +cNum +cLF
elseif Upper( cImp ) = [EPSON]
cBar:= Epson( aNum, aBar, nEsq, nEsp, nAlt )
endif
return cBar


*ÚÄÄÄÄÄÄÄÄÄÄ¿
*³Epson ³
*ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
static function Epson( aNum, aBar, nEsq, nEsp, nAlt )
local I
local J
local K
local N
local cRet
local cBlo
local cEsp
local bPrefix
local cLF

nAlt:= If( ValType( nAlt ) # [N], 6, nAlt )

cBlo:= Chr( 255 ) +Chr( 255 )
cEsp:= Chr( 0 ) +Chr( 0 )
cLF := Chr( 13 ) +Chr( 10 )

bPrefix:= {|n| Chr( 27 ) +[L] +Chr( n * 2 % 256 ) +Chr( Int( n * 2 / 256 ) ) }

cRet:= Space( nEsq ) +Chr( 27 ) +[A] +Chr( 8 ) // Espa‡amento 9 LPI

for I:= 1 to nAlt
for J:= 1 to Len( aBar )
N:= Len( aBar[J] )

cRet+= [ ] +Eval( bPrefix, N )

for K:= 1 to N
if SubStr( aBar[J], K, 1 ) = [1]
cRet+= cBlo
else
cRet+= cEsp
endif
next

cRet+= Space( nEsp )
next

cRet+= cLF
next

cRet+= Space( nEsq )

for I:= 1 to Len( aNum )
cRet+= [ ] +Transform( aNum, [@R 9.999999.999999] ) +[ ]

if I < Len( aNum )
cRet+= Space( nEsp )
endif
next

cRet+= Chr( 27 ) +[2] // Espa‡amento 6 LPI
cRet+= cLF
return cRet


*ÚÄÄÄÄÄÄÄÄÄÄ¿
*³HP ³
*ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
static function Hp( cBar, nAlt )
local I
local N
local cRet

nAlt:= If( ValType( nAlt ) # [N], 5, nAlt )

N:= Len( cBar )

if N % 8 # 0
cBar+= Replicate( [0], 8 -(N % 8) )
endif

N:= Int( Len( cBar ) / 8)

cRet:= Chr( 27 ) +[*r1A] +Chr( 27 ) +[*b] +LTrim( Str( N ) ) +[W]

for I:= 1 to N
cRet+= Chr( Bin2Dec( SubStr( cBar, (I -1) * 8 +1, 8 ) ) )
next

N:= Round( (nAlt -1) * 12.5 -14, 0 )

for I:= 1 to N
cRet+= Chr( 27 ) +[*b3m0W]
next

cRet+= Chr( 27 ) +[*rbC]
return cRet


*ÚÄÄÄÄÄÄÄÄÄÄ¿
*³Bin2Dec ³
*ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
static function Bin2Dec( cBin )
local I
local J
local nDec

nDec:= 0
J:= Len( cBin )
I:= 0

while J > 0
if SubStr( cBin, J, 1 ) = [1]
nDec+= 2 ^ I
endif

J--
I++
enddo
return nDec

como poderia usa-la???
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem por Gilberto M Silva »

blz Leonardo vou testar :))

Gilberto
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Gilberto M Silva escreveu:blz Leonardo vou testar :))

Gilberto
A principio é pra funcionar, e lembrando...esta formando o codigo em caracter...vc pode usar VAL(vBARRA1) para converter para numérico.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Função para gerar Código de Barras

Mensagem por Maligno »

Gilberto M Silva escreveu:Estou precisando fazer um programinha que gere um codigo de barras a partir de um número digitado, para etiquetar produtos caseiros.
Tenho na minha área "pub" (diretório clipper\libs) a biblioteca Light & Dark que gera vários tipos de códigos de barras para vários tipos de impressoras.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Quero lembrar que, se o seu código não for oficialmente cadastrado no EAN Brasil, o prefixo "789" não faz o menor sentido, e não precisa ser fixo. Assim, você poderá utilizar todo o espectro do código. Ou seja, você terá 12 dígitos para compor o número que quiser. Inclusive, o próprio EAN Brasil prevê esse tipo de situação, e libera o código todo. Só há uma sutiliza no manual deles, mas isso não vem ao caso. Se quiser saber o quê, pergunte.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

sygecom escreveu:

Código: Selecionar todos

Func geracod
vSOMA=0
vLEO5=78910030
vCOD=0

@ 10,10 get vCOD PICT "9999"
READ

vCOD=STRZERO(vCOD,4)

DO WHILE .T.
   vSOMA=vSOMA+1
   vBARRA1  =SPACE(13)
   vTESTE=STR(vSOMA)

   IF vSOMA=9
      vSOMA=0
      vLEO5=vLEO5+1
   ENDIF
   vBARRA1=STR(vLEO5)+ vCOD +ALLTRIM(vTESTE)
   vLEO=Len((vBARRA1 := AllTrim(vBARRA1)))=13 .and. Right(vBARRA1,1) == CalcEAN13(vBARRA1)

   IF vLEO=.F.
      LOOP
   ELSE
      EXIT
   ENDIF
ENDDO

@ 11,10 SAY vBARRA1  PICT "@!"
INKEY(0)
RETURN

FUNC CalcEAN13(cEAN)
local nSoma := 0
local i
for i := 1 to 12
    nSoma += Val(SubStr(cEAN,i,1)) * if(i%2>0,1,3)
next
return if(nSoma%10=0, "0", Str(((Int(nSoma/10)+1)*10)-nSoma,1))
Acho que ficaria mais fácil:

Código: Selecionar todos

function GeraCod(cBase)
cBase := PadR(cBase,12,"0")
return cBase+CalcEAN13(cEAN)
Interessante: tenho a impressão de que já vi essa CalcEAN13() em algum lugar. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Função para gerar Código de Barras

Mensagem por Maligno »

Maligno escreveu:Tenho na minha área "pub" (diretório clipper\libs)
Esqueci de dizer: o link está na minha assinatura, caso não tenha notado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem por Gilberto M Silva »

Maligno como uso essa lib para imprimir o código de barras?

Gilberto.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem por Gilberto M Silva »

Usando a função que o leonardo postou, a partir dela como posso imprimir o codigo de barras em uma hp por exemplo.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Gilberto M Silva escreveu:Maligno como uso essa lib para imprimir o código de barras?
Eu próprio nunca usei, mas vi no NG dela que é coisa muito simples. Veja o exemplo que extraí do NG:

Código: Selecionar todos

// create a UPC 12 barcode
cBar := LDUpc12("123456789012")

// generate it
aCode := LDGenerate(LD_TYP_EPSON9,cBar)

// print it
SET PRINTER TO LPT1
SET CONSOLE OFF
SET PRINTER ON

FOR ni := 1 to len(aCode)
   ?? aCode[ni]
NEXT

EJECT
SET CONSOLE ON
SET PRINTER OFF
SET PRINTER TO
O exemplo está para UPC, mas para ter EAN basta trocar pela função apropriada. Parece moleza.
Aliás, por curiosidade, hoje à noite vou até dar uma testada nessa LIB numa LaserJet que tenho aqui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem por Gilberto M Silva »

Para codificar um produto Ex: panela de barro, ai eu digito um condigo ele me gera o de barras, imprimo e etiquieto o produto e boto na prateleira para vender, quando vender é só ler o codigo de barras e pronto, foi vendido.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem por Gilberto M Silva »

blz Maligno, vou testar...
Gilberto
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Gilberto M Silva escreveu:Usando a função que o leonardo postou, a partir dela como posso imprimir o codigo de barras em uma hp por exemplo.
Não. A função do Leonardo não é pra imprimir, mas para criar um código de barras. Por isso intercedi e apresentei uma solução mais "econômica" que a que ele apresentou. Pra imprimir você precisará de algo do tipo da biblioteca que subi pra você no meu site.
Veja se ela funciona. Se funcionar, ótimo. Caso contrário, tenho outra biblioteca aqui. Se não me engano, foi feito pela XPTO. Mas nessa eu não sei se consta o código EAN13.
Editado pela última vez por Maligno em 26 Jul 2007 16:37, em um total de 1 vez.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder