impressão do codigo de barras
Enviado: 16 Ago 2016 14:04
Boa tarde, pessoal
inclui uma rotina para imprimir o codigo de barras.
porem não imprime o codigo de barras, imprime apenas os numeros que deveriam ser transformado em barras.
se eu mando imprimir via WordPad com as fontes correspondentes, imprime a barra normalmente.
testei em win xp e win7.
alguém pode me dar uma idéia do que pode ser ?
tcNumero:=35160108880652000170550010000017161000017163
GfGfFfGfGfFfFfFfGfFfGfFfFfGfFfFfFfGfFfGfGfFfFfFfFfGfGfFfGfFfFfFfGfFfFfGfGfFfGfFfFfGfFfGfFfFfGfFfGfFfFfGfFfFfFfGfGfFfFfGfGfFfFfG
Acima seria o código de barras com o numero convertido
35160108880652000170550010000017161000017163
Acima também seria o código de barras com os numeros normais
Minha rotina:
* as fontes devem ser instaladas no Windows
afontes:=oprinter:getfonts()
if !(ascan(afontes, { |aa| upper(aa[1]) == "BARRAS BIRO" } ) > 0 ) .and. ;
!(ascan(afontes, { |bb| upper(bb[1]) == "FREE3OF9" } ) > 0 ) .and. ;
!(ascan(afontes, { |cc| upper(cc[1]) == "ARIAL ROUNDED MT BOLD" } ) > 0 )
msginfo( "nao existem fontes instaladas", "atenção" )
break
endif
* mensagem = fonte ausente
// Esta rotina apenas converte os numeros em posiçoes da barra
cNum:=Barra25(tcnumero)
oPrinter:SetFont('Courier New', 12, 0 )
col=0 //oPrinter:mm_to_posX(10)
lin=350 //oPrinter:mm_to_posY(10)
oPrinter:TextOutAt(col,lin,"*"+tcnumero+"*",.t.,.f.,0)
col=10 //oPrinter:mm_to_posX(10)
lin=1020 //oPrinter:mm_to_posY(30)
// Fonte enviada pelo ASimoes para imprimir a barra com numero convertido
oPrinter:SetFont('Free 3 of 9', 30, 0)
oPrinter:SetPrc( oPrinter:pRow()+2, 0 )
oPrinter:TextOut(cNum)
// Retornando a fonte normal para imprimir a mensagem
oPrinter:SetFont('Courier New', 12, 0 )
oPrinter:SetPrc( oPrinter:pRow()+2, 0 )
oPrinter:TextOut(ansitooem("Acima seria o código de barras"))
// Fonte enviada pelo ASimoes para imprimir a barra com numero normal
oPrinter:SetFont('Free 3 of 9', 30, 0)
oPrinter:SetPrc( oPrinter:pRow()+12, 0 )
oPrinter:TextOut(tcnumero)
// Retornando a fonte normal para imprimir a mensagem e fechar o documento
oPrinter:SetFont('Courier New', 12, 0 )
oPrinter:SetPrc( oPrinter:pRow()+2, 0 )
oPrinter:TextOut(ansitooem("Acima também seria o código de barras"))
utilizo Harbour com Fivewin
Grato,
inclui uma rotina para imprimir o codigo de barras.
porem não imprime o codigo de barras, imprime apenas os numeros que deveriam ser transformado em barras.
se eu mando imprimir via WordPad com as fontes correspondentes, imprime a barra normalmente.
testei em win xp e win7.
alguém pode me dar uma idéia do que pode ser ?
tcNumero:=35160108880652000170550010000017161000017163
GfGfFfGfGfFfFfFfGfFfGfFfFfGfFfFfFfGfFfGfGfFfFfFfFfGfGfFfGfFfFfFfGfFfFfGfGfFfGfFfFfGfFfGfFfFfGfFfGfFfFfGfFfFfFfGfGfFfFfGfGfFfFfG
Acima seria o código de barras com o numero convertido
35160108880652000170550010000017161000017163
Acima também seria o código de barras com os numeros normais
Minha rotina:
* as fontes devem ser instaladas no Windows
afontes:=oprinter:getfonts()
if !(ascan(afontes, { |aa| upper(aa[1]) == "BARRAS BIRO" } ) > 0 ) .and. ;
!(ascan(afontes, { |bb| upper(bb[1]) == "FREE3OF9" } ) > 0 ) .and. ;
!(ascan(afontes, { |cc| upper(cc[1]) == "ARIAL ROUNDED MT BOLD" } ) > 0 )
msginfo( "nao existem fontes instaladas", "atenção" )
break
endif
* mensagem = fonte ausente
// Esta rotina apenas converte os numeros em posiçoes da barra
cNum:=Barra25(tcnumero)
oPrinter:SetFont('Courier New', 12, 0 )
col=0 //oPrinter:mm_to_posX(10)
lin=350 //oPrinter:mm_to_posY(10)
oPrinter:TextOutAt(col,lin,"*"+tcnumero+"*",.t.,.f.,0)
col=10 //oPrinter:mm_to_posX(10)
lin=1020 //oPrinter:mm_to_posY(30)
// Fonte enviada pelo ASimoes para imprimir a barra com numero convertido
oPrinter:SetFont('Free 3 of 9', 30, 0)
oPrinter:SetPrc( oPrinter:pRow()+2, 0 )
oPrinter:TextOut(cNum)
// Retornando a fonte normal para imprimir a mensagem
oPrinter:SetFont('Courier New', 12, 0 )
oPrinter:SetPrc( oPrinter:pRow()+2, 0 )
oPrinter:TextOut(ansitooem("Acima seria o código de barras"))
// Fonte enviada pelo ASimoes para imprimir a barra com numero normal
oPrinter:SetFont('Free 3 of 9', 30, 0)
oPrinter:SetPrc( oPrinter:pRow()+12, 0 )
oPrinter:TextOut(tcnumero)
// Retornando a fonte normal para imprimir a mensagem e fechar o documento
oPrinter:SetFont('Courier New', 12, 0 )
oPrinter:SetPrc( oPrinter:pRow()+2, 0 )
oPrinter:TextOut(ansitooem("Acima também seria o código de barras"))
utilizo Harbour com Fivewin
Grato,