Boa tarde pessoal, apos muito quebra de cabeça e sem solução vim pedir ajuda aos mestres. :%
Estou desenvolvendo etiquetas de barras com win32prn estava tudo indo ok com a função oPrinter:TextOut() mas não tinha como fazer linhas com espaçamento menores, então pesquisando vi que tem oPrinter:TextOutAt() que confere maior precisão onde imprimir o texto, só que está acontecendo o seguinte se eu imprimir um código de barras e apos imprimir um texto eu não consigo imprimir outro código de barras em seguida, ou seja mesmo eu setando a fonte EAN-13 a impressão fica um texto comum, segue um pequeno programinha que fiz para comprovar e testar.
Segue tambem meu etq.hbp
-hbexe
-mt
-inc
-gtwvg
-lhbwin
-oEtq
Etq.PRG
Não sei porque o forum nao permite extensão .HBP
Estou compilando assim hbmk2 etq.hbp xhb.hbc
Etiqueta de Barras - HELP
Moderador: Moderadores
- Cavalo Marinho
- Usuário Nível 3

- Mensagens: 156
- Registrado em: 01 Ago 2009 10:01
- Localização: Aracaju/Se
Etiqueta de Barras - HELP
Dá uma olhada neste post:
https://pctoledo.org/forum/viewto ... hilit=eolo
https://pctoledo.org/forum/viewto ... hilit=eolo
- Cavalo Marinho
- Usuário Nível 3

- Mensagens: 156
- Registrado em: 01 Ago 2009 10:01
- Localização: Aracaju/Se
Etiqueta de Barras - HELP
Eolo obrigado por responder
Dei uma boa olhada no post recomendado, fiz alterações no meu programinha exemplo, alterando posições (colocando fixas somente para teste) mas não funcionou, observe que no arquivo de exemplo em anexo eu coloquei comentários informando quando e como faz a barra e também onde não faz, estou ficando maluco
´ já que no inicio com fonte EAN-13 imprime, com BARRAS BIRO não, e apos imprimir qualquer coisa com outra fonte não imprime mais, será um bug do WIN32PRN?, Estou usando harbour 3.2.
Dei uma boa olhada no post recomendado, fiz alterações no meu programinha exemplo, alterando posições (colocando fixas somente para teste) mas não funcionou, observe que no arquivo de exemplo em anexo eu coloquei comentários informando quando e como faz a barra e também onde não faz, estou ficando maluco
- Anexos
-
ETQ.PRG- (2.5 KiB) Baixado 52 vezes
Etiqueta de Barras - HELP
Vc colocou o número do código de barras como argumento em TexOutAt(), direto, sem usar a função BARRAEAN13().Printer:SetFont('Barras Biro',20,{3,7}, 400 )
setpos(50,800)
oPrinter:TextOutAt(50, 800, "7896445490086", .F., .F.)
* oPrinter:TextOutat(lar,alt,xxxxx,.f.,.f.,alinha(0))
No meu exemplo do post citado, veja a variável "xxxxx":
Dê uma conferida geral nos argumentos da SetFont().priv xxxxx:=alltrim(str(nprod->nbarr))
if len(xxxxx)=13
xxxxx:=barraean13(xxxxx)
elseif len(xxxxx)=8
xxxxx:=barraean8(xxxxx)
else
xxxxx=padl(xxxxx,13,"0")
xxxxx:=barraean13(xxxxx)
endi
...
oPrinter:SetFont('Barras Biro',20,{3,7}, 400 )
...
oPrinter:TextOutat(lar,alt,xxxxx,.f.,.f.,alinha(0))
Anexo o HELP do xHarbour, pra ajudar.
Vc usa cada hora de um jeito:
Sobre o argumento “255”, eu faço o seguinte: deixo a tabela de caracteres default (que é a ANSI) e, quando vou imprimir qualquer texto não ANSI, aplico a OEMTOANSI(). Mesmo que o texto já seja ANSI, não tem problema. Só vai chover no molhado.oPrinter:SetFont('Arial Black', 18, 0 , , , ,255)
oPrinter:SetFont('EAN-13',20,{3,7}, 400 )
oPrinter:SetFont('EAN-13',18,{1,12}, 0, .F., .F.)
…
A propósito: vc instalou a fonte Barras Biro no Windows?oPrinter:TextOutat(lar,alt,hb_oemtoansi(nome01),.f.,.f.,alinha(1))
- Anexos
-
xHarbour Language Reference Guide.zip- (2.2 MiB) Baixado 72 vezes
