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
viewtopic.php?f=6&t=29669&p=189486&hilit=codebar#p167720
- Busca hbzebra en el foro
- Barlib de Cayetano, yo la he utilizado mucho
viewtopic.php?f=6&t=29669&p=189486&hilit=codebar#p167720
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
- leandro
- Posts: 1745
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 34 times
- Been thanked: 10 times
- Contact:
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 AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
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 | Expand
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 los caracteres 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+")"
Espero te sirva el dato, cualquier duda a tu disposicion.
Saludos
-
- Posts: 128
- Joined: Tue Mar 20, 2007 3:13 pm
- Has thanked: 1 time
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