Con la clase tprinter emito tiquets con codigo de barras e imagenes en una Epson comandera asi:
Code: Select all
FUNCTION ImprimeTicket(nNro)
LOCAL i, x, y, oPrn, nRow, oFont, oFont2, oFont4, oQryVen1, oQryDet1, config
oQryVen1 := oApp:oServer:Query("SELECT * FROM tickets WHERE id = " + ClipValue2Sql(nNro))
IF oQryVen1:nRecCount = 0
MsgStop("Recibo no existe!!","Error")
RETURN nil
ENDIF
** FACTURACION CON FORMATO PARA TICKET
DEFINE FONT oFont NAME "COURIER NEW" SIZE -12,20
DEFINE FONT oFont2 NAME "TIMES NEW ROMAN" SIZE -13,22
AddFontResource( "Bar25ifh.ttf" )
DEFINE FONT oFont4 NAME "Bar 25i f HR" SIZE 15, 120
PRINT oPrn NAME "Ticket"
FOR x := 1 TO 1
PAGE
oPrn:SayImage(00,200, "logo.jpg",80, 80 , nil, .t. )
oPrn:cmSay( 02,01 ,oApp:nomb_emp,oFont2)
oPrn:cmSay( 02.5,01 ,oApp:dire_emp,,oFont)
oPrn:cmSay( 03,01 ,"Recibo Nro:"+STRTRAN(STR(oQryVen1:id,8)," ","0"),oFont2)
oPrn:cmSay( 03.5,01 ,"Fecha de ticket:"+DTOC(oQryVen1:fecha),oFont)
oPrn:cmSay( 04,01 , oApp:cuit_emp,oFont )
y := 06.5
oPrn:cmSay( 05.5,00 , REPLICATE("-",40),oFont )
oPrn:cmSay( 06.0,01 , "Detalle del ticket",oFont )
oPrn:cmSay( y ,01 , oQryVen1:concepto+ " " + STR(oQryVen1:importe,10,2),oFont)
y ++
oPrn:cmSay( y,01,"T O T A L:" + STR(oQryVen1:total,10,2),oFont2)
y++
oPrn:cmSay( y+.5,01, CodigoBarra("07100"+ALLTRIM(oQryVen1:id)+"2"),oFont4)
ENDPAGE
NEXT x
ENDPRINT
RETURN nil
STATIC FUNCTION CodigoBarra( x )
LOCAL i, bar := {}, j := 0, bar1 := {}, cBarr := ""
FOR i:= 33 to 122
AADD(bar,CHR(i))
AADD(bar1,STRTRAN(STR(j,2)," ","0"))
j++
NEXT i
FOR i:= 161 to 170
AADD(bar,CHR(i))
AADD(bar1,STRTRAN(STR(j,2)," ","0"))
j++
NEXT i
FOR j := 1 TO LEN(x) STEP 2
i := ASCAN(bar1,SUBSTR(x,j,2))
cBarr := cBarr + bar[i]
NEXT j
RETURN "{"+cBarr+"}"