Hola grupo:
Estoy tratando de imprimir una boleta y utilizo la clase tUtilPrn, todo bien hasta ahí, pero quiero agregarle un código de barras y no se como hacerlo con esta clase.
Lo hago de la siguiente forma:
@ xStep,yStep code128 oDBCheq:NroCom of oPr SIZE 1 mode 'A' //
pero a distintas impresoras sale en distintas posiciones.
Se puede imprimir con la clase tUtilPrn los códigos de barras?
O que otra alternativa debo usar para que salga igual sin depender de la impresora.
Gracias
Codigo de Barras y tUtilPrn
Re: Codigo de Barras y tUtilPrn
Lo solucione instalando el font code128 y usando de la siguiente manera:
Define Font oFC128 name 'CODE 128' size 0,-14 of oPr
UTILPRN oUtils nLinea,nColum+12 SAY oDBCheq:Barra FONT oFC128
La única contra de esto es que se debe instalar en cada maquina del cliente dicho font.
Espero les sirva.
Saludos
Define Font oFC128 name 'CODE 128' size 0,-14 of oPr
UTILPRN oUtils nLinea,nColum+12 SAY oDBCheq:Barra FONT oFC128
La única contra de esto es que se debe instalar en cada maquina del cliente dicho font.
Espero les sirva.
Saludos
Re: Codigo de Barras y tUtilPrn
Me apure en contestar, si me imprime bien , pero el lector de código de barras no lee lo que imprimo.
Alguno puede saber porque?
Gracias
Alguno puede saber porque?
Gracias
Re: Codigo de Barras y tUtilPrn
Para imprimir codigos de barra, tienes varias soluciones:
- Busca hbzebra en el foro
- Barlib de Cayetano, yo la he utilizado mucho
http://forums.fivetechsupport.com/viewt ... ar#p167720
- Busca hbzebra en el foro
- Barlib de Cayetano, yo la he utilizado mucho
http://forums.fivetechsupport.com/viewt ... ar#p167720
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Codigo de Barras y tUtilPrn
Hola buenos días
A mi alguna vez me sucedió algo similar, lo solucione colocando un asterisco al inicio y al final del código de barras.
A mi alguna vez me sucedió algo similar, lo solucione colocando un asterisco al inicio y al final del código de barras.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Re: Codigo de Barras y tUtilPrn
Estimado Caducca:
Una solucion puede ser la siguiente
Espero te sirva el dato, cualquier duda a tu disposicion.
Saludos
Una solucion puede ser la siguiente
Code: Select all
AddFontResource( "i2of5txt.ttf" ) // Este es el nombre de la fuente de tu codigo de barra, yo uso esta para interleave 2 de 5
// Lo bueno de usar addfontresourse es que no tiene que estar instalada la fuente, solo debes distribuirla con tu programa.
nIndX := oPrn:nVertRes() / 7016 // Aca simplemente ajusto segun la definicion de la impresora
nIndY := oPrn:nHorzRes() / 4958
DEFINE FONT oFont4 NAME "Interleaved 2of5 Text" SIZE 25*nIndX, 170*nIndY
PRINT oPrn NAME "Ejemplo" PREVIEW
PAGE
oPrn:Say(100*nIndX - (nRow*6),100*nIndY , CodigoBarra(STRTRAN(STR(nCodbar,12)," ","0")),oFont4)
ENDPAGE
ENDPRINT
STATIC FUNCTION CodigoBarra( x )
LOCAL i, bar := {}, j := 0, bar1 := {}, cBarr := ""
// Para este tipo de font, toma de a pares y los representa con _ desde el 48 al 97 y del 192 al 241
FOR i := 48 TO 97
AADD(bar ,CHR(i))
AADD(bar1,STRTRAN(STR(j,2)," ","0"))
j++
NEXT i
FOR i := 192 TO 241
AADD(bar,CHR(i))
AADD(bar1,STRTRAN(STR(j,2)," ","0"))
j++
NEXT i
// Aca recorro el string que le paso de a dos y voy armando el codigo que lo representa
FOR j := 1 TO LEN(x)-1 STEP 2
i := ASCAN(bar1,SUBSTR(x,j,2))
cBarr := cBarr + bar[i]
NEXT j
// En el caso de este font, para que el lector de codigos de barra lo lea, el inicio y cierre del codigo de barra esta determinado por parentesis, asi que se los agrego
RETURN "("+cBarr+")"
Saludos
-
- Posts: 84
- Joined: Tue Mar 20, 2007 3:13 pm
Re: Codigo de Barras y tUtilPrn
Olá,
Utilizo a TImprime e a UtilPrn, ótimas classes. Para gerar código de barras com elas e a barlib do caetano, faço assim:
::Salto()
aCoord := ::oPrn:Cmtr2Pix( ::nLinea, 1.00 )
INT25( aCoord[ 1 ], aCoord[2], AllTrim( cCodigo_Barra ), ::oPrn, .F., 0, .T., 0.30, 1.20 )
*---------------------------------------------------------------------------------------------------------------*
INT25, intercalado 2 de 5 para boleto bancário e funciona bem.
Qualquer coisa manda teu e-mail que te passo um exemplo completo.
Att.,
Oliveiros Junior
Utilizo a TImprime e a UtilPrn, ótimas classes. Para gerar código de barras com elas e a barlib do caetano, faço assim:
::Salto()
aCoord := ::oPrn:Cmtr2Pix( ::nLinea, 1.00 )
INT25( aCoord[ 1 ], aCoord[2], AllTrim( cCodigo_Barra ), ::oPrn, .F., 0, .T., 0.30, 1.20 )
*---------------------------------------------------------------------------------------------------------------*
INT25, intercalado 2 de 5 para boleto bancário e funciona bem.
Qualquer coisa manda teu e-mail que te passo um exemplo completo.
Att.,
Oliveiros Junior
Re: Codigo de Barras y tUtilPrn
Gracias a todos. Solucione con la forma que me indico oliveiros junior porque me resulto la mas fácil de implementar.
Gracias
Gracias