Codigo de Barras y tUtilPrn

Post Reply
caducca
Posts: 106
Joined: Wed Mar 08, 2006 2:24 pm

Codigo de Barras y tUtilPrn

Post by caducca »

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
caducca
Posts: 106
Joined: Wed Mar 08, 2006 2:24 pm

Re: Codigo de Barras y tUtilPrn

Post by caducca »

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
caducca
Posts: 106
Joined: Wed Mar 08, 2006 2:24 pm

Re: Codigo de Barras y tUtilPrn

Post by caducca »

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
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Codigo de Barras y tUtilPrn

Post by cnavarro »

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
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.
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Codigo de Barras y tUtilPrn

Post by leandro »

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.
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 ]
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Codigo de Barras y tUtilPrn

Post by cmsoft »

Estimado Caducca:
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+")"
 
Espero te sirva el dato, cualquier duda a tu disposicion.
Saludos
oliveiros junior
Posts: 84
Joined: Tue Mar 20, 2007 3:13 pm

Re: Codigo de Barras y tUtilPrn

Post by oliveiros junior »

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
caducca
Posts: 106
Joined: Wed Mar 08, 2006 2:24 pm

Re: Codigo de Barras y tUtilPrn

Post by caducca »

Gracias a todos. Solucione con la forma que me indico oliveiros junior porque me resulto la mas fácil de implementar.
Gracias
Post Reply