He leido detenidamente tu post pero la verdad, no sé cómo aplicarlo a mi necesidad específica que consiste en imprimir en la ultima linea del ticket algo que diga
"#TICKET ATENCION 24" pero en letras mucho mas grandes.
Adjunto mi rutina de impresion para Impresoras Ticketertas Matricales como Epson TM U220
****************************************************************************************************************
xmaq_caja = IIF(oApp.num_caja="1",ALLTRIM(ratios.maq_caja1),IIF(oApp.num_caja="2",ALLTRIM(ratios.maq_caja2),IIF(oApp.num_caja="3",ALLTRIM(ratios.maq_caja3),ALLTRIM(ratios.maq_caja4))))
xmaq_bol = IIF(oApp.num_caja="1",ALLTRIM(ratios.maq_bol1),IIF(oApp.num_caja="2",ALLTRIM(ratios.maq_bol2),IIF(oApp.num_caja="3",ALLTRIM(ratios.maq_bol3),ALLTRIM(ratios.maq_bol4))))
xmaq_cpo = IIF(oApp.num_caja="1",ALLTRIM(ratios.maq_cpo1),IIF(oApp.num_caja="2",ALLTRIM(ratios.maq_cpo2),IIF(oApp.num_caja="3",ALLTRIM(ratios.maq_cpo3),ALLTRIM(ratios.maq_cpo4))))
xmozo = "" && Por si detalleva esta vacio
SELECT ventas
SET ORDER TO nummov
SEEK oApp.nummov
*
* RUTINA PARA IMPRESORA DE SOLO TEXTO
*
SET LIBRARY TO "rawprint5.fll" ADDITIVE
rutaarchivo = SYS(5) + SYS(2003) + "\boleta.txt"
SET PRINTER TO FILE boleta.txt
SET CONSOLE OFF
SET DEVICE TO PRINT
*
*
@0,1 say CHR(27) + CHR(15) && Aqui me sale condensado (40 caracteres por linea)
*
*
lin = 0
IF ratios.gaveta_imp && Abre gaveta al imprimir
@lin,0 Say Chr(27)+Chr(112)+Chr(48)+Chr(25)+Chr(250)
lin = lin + 1
ENDIF
*
xdesc = IIF(ventas.cancelada,"*** A N U L A D A ***","")
@lin,(40-LEN(xdesc))/2 Say xdesc
lin = lin + 1
xdesc = "HELADOS ABC"
@lin,(40-LEN(xdesc))/2 Say xdesc
lin = lin + 1
xdesc = "C.Panamericana Sur Km 12 - LIMA "
@lin,(40-LEN(xdesc))/2 Say xdesc
lin = lin + 1
xdesc = "Telf: 999-9999 Ruc: 99999999999"
@lin,(40-LEN(xdesc))/2 Say xdesc
lin = lin + 1
xdesc = "Maq.Regist.Nro: " + ALLTRIM(oApp.num_maq) && En inicio.prg = numa_maq1...2 (igual que Caja1)
@lin,(40-LEN(xdesc))/2 Say xdesc
lin = lin + 1
IF !EMPTY(oApp.autoriz)
xdesc = "Nro. Autorizacion: " + ALLTRIM(oApp.autoriz) && En inicio.prg = autoriz1...2 (igual que Caja1)
@lin,(40-LEN(xdesc))/2 Say xdesc
lin = lin + 1
ENDIF
xdesc = "Fecha:" + dtoc(ventas.fecha) + " " + ventas.hora
@lin,(40-LEN(xdesc))/2 Say xdesc
lin = lin + 2
@lin,0 Say "#Boleta: "+ ventas.numdoc
lin = lin + 1
IF !EMPTY(ALLTRIM(ventas.apeynom))
lin = lin + 1
@lin,0 Say "Nombre: "+left(ventas.apeynom,32)
lin = lin + 1
ENDIF
IF !EMPTY(ALLTRIM(SUBSTR(ventas.apeynom,33,60))) && apeynom chr(60)
@lin,8 Say SUBSTR(ventas.apeynom,33,60) && para que salga alineado con la primera parte del apeynom
lin = lin + 1
ENDIF
IF !EMPTY(ventas.direccion)
@lin,0 Say ventas.direccion
lin = lin + 1
ENDIF
IF !EMPTY(ventas.distrito)
@lin,0 Say ventas.distrito
lin = lin + 1
ENDIF
IF !EMPTY(ventas.telfdeli) AND ventas.tipo = 3 && Delivery
@lin,0 say "Telefono: " + ALLTRIM(ventas.telfdeli)
lin = lin + 1
ENDIF
lin = lin + 1
@lin,0 Say " PRODUCTO VALOR"
lin = lin + 1
@lin,0 Say REPLICATE("-",40)
lin = lin + 1
IF ventas.consumo
@lin,5 Say "POR CONSUMO"
lin = lin + 1
ELSE
SELECT detallevta
SEEK oApp.nummov
IF !EOF()
xmozo = mozo
Do While nummov = oApp.nummov AND !Eof()
IF !EMPTY(devuelto) OR anul
SKIP
LOOP
ENDIF
IF ptotal > 0
IF ratios.palot_deci
@lin,0 Say tran(cantidad,"9999.999")+" "+LEFT(recetas.desc,17)
ELSE
@lin,0 Say tran(cantidad,"9999")+" "+LEFT(recetas.desc,21)
ENDIF
@lin,32 say IIF(ventas.moneda="001",tran(ptotal,"9,999.99"),tran(ptot_dol,"9,999.99"))
lin = lin + 1
ENDI
SKIP
ENDDO
ENDIF
ENDIF
@lin,0 Say REPLICATE("-",40)
lin = lin + 1
*
@lin,0 Say "TOTAL S/."
@lin,31 Say TRANSFORM(ventas.monto,"99,999.99")
lin = lin + 2
*
* Formas de Pago y Vuelto
*
IF !EMPTY(ventas.pago_sal)
@lin,0 Say "Aplicacion Saldo a Favor S/."
@lin,31 Say trans(ventas.pago_sal,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.pagosol)
@lin,000 Say "Efectivo S/."
@lin,31 Say trans(ventas.pagosol,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.pagodol)
@lin,000 Say "Efectivo US$" + ALLTRIM(trans(ventas.pagodol,"99,999.99"))
@lin,31 Say trans(ventas.montodol,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.montotarj)
@lin,000 Say "VISA S/."
@lin,31 Say trans(ventas.montotarj,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.montotarj1)
@lin,000 Say "MASTER CARD S/."
@lin,31 Say trans(ventas.montotarj1,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.montotarj2)
@lin,000 Say "AMEX S/."
@lin,31 Say trans(ventas.montotarj2,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.montotarj3)
@lin,000 Say "DINERS S/."
@lin,31 Say trans(ventas.montotarj3,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.montootro)
IF SEEK(ventas.fpago_otro,"rubrosingresos","codigo")
@lin,0 Say ALLTRIM(rubrosingresos.desc) + " S/."
@lin,31 Say trans(ventas.montootro,"99,999.99")
lin = lin + 1
ENDIF
ENDIF
IF !EMPTY(ventas.vueltotot)
@lin,0 Say "VUELTO S/."
@lin,31 Say trans(ventas.vueltotot,"99,999.99")
lin = lin + 1
ENDIF
IF !EMPTY(ventas.propina)
@lin,0 Say "PROPINA S/."
@lin,31 Say trans(ventas.propina,"99,999.99")
lin = lin + 1
ENDIF
lin = lin + 1
IF ventas.moneda = "001"
@lin,0 say "T.C. S/." + ALLTRIM(STR(
ratios.tc,10,3))
ENDIF
*
IF !EMPTY(ventas.mesa)
nom_mozo = iif(SEEK(xmozo,"empleados1","codigoloc"),empleados1.nombre,"")
lin = lin + 2
IF !EMPTY(oApp.rotulo)
cRotulo = ALLTRIM(oApp.rotulo)
cMesa = LEFT(cRotulo, AT("-",cRotulo) - 1)
cPax = RIGHT(cRotulo, LEN(cRotulo) - AT("-",cRotulo))
@lin,0 Say "Mesa Auxiliar: " + ALLTRIM(STR(oApp.mesa,3)) + " (Mesa " + cMesa + " - Pax " + cPax + ")"
lin = lin + 1
@lin,0 say "Mozo: " + ALLTRIM(nom_mozo)
ELSE
@lin,0 Say "Mesa: "+ALLTRIM(STR(ventas.mesa,3)) + " Mozo: " + ALLTRIM(nom_mozo)
ENDIF
ENDIF
lin = lin + 1
@lin,0 Say "Cajero: " + oApp.nombre
IF !EMPTY(ALLTRIM(ventas.nombre))
lin = lin + 2
@lin,0 Say "Socio: "+left(ventas.nombre,33)
ENDIF
IF !EMPTY(ALLTRIM(righ(ventas.nombre,12)))
lin = lin + 1
@lin,7 Say righ(ventas.nombre,12) && para que salga alineado con la primera parte del nombre de socio
ENDIF
*
IF !EMPTY(ALLTRIM(ventas.nombre))
xsaldo_favor = 0
IF SEEK(ventas.cod_socio,"clientes","cod_socio")
xsaldo_favor = clientes.saldo
ENDIF
lin = lin + 2
@lin,0 say "Saldo a favor: " + ALLTRIM(TRANSFORM(xsaldo_favor,"9,999,999.99"))
ENDIF
*
IF ventas.imp_observ
IF !EMPTY(LEFT(ventas.observ,31))
lin = lin + 2
@lin,0 say LEFT(ventas.observ,31)
ENDIF
IF !EMPTY(SUBSTR(ventas.observ,32,39))
lin = lin + 1
@lin,0 say SUBSTR(ventas.observ,32,39)
ENDIF
IF !EMPTY(RIGHT(ventas.observ,30))
lin = lin + 1
@lin,0 say RIGHT(ventas.observ,30)
ENDIF
ENDIF
*
IF !EMPTY(ventas.refer) AND ventas.tipo = 3 && Delivery
lin = lin + 2
@lin,0 say "Ref: " + ALLTRIM(ventas.refer)
ENDIF
*
lin = lin + 2
xdesc = IIF(ventas.tipo=3,"GRACIAS !!!","GRACIAS POR SU VISITA !!!")
@lin,(40-LEN(xdesc))/2 Say xdesc
IF ventas.tipo = 3 && Delivery
lin = lin + 2
xdesc = "DELIVERY: " + ALLTRIM(ratios.telfdeli)
@lin,(40-LEN(xdesc))/2 Say xdesc
ENDIF
*
*
*
******* HASTA AQUI TODO BIEN *******
*
*
*
* LO QUE NECESITO AHORA ES QUE EN LA ULTIMA LINEA APAREZCA CON LETRA MUCHO MAS GRANDE LO SIGUEINTE:
* #TICKET ATENCION: 24 (24 OBVIAMENTE ES UNA VARIABLE...)
*lin = lin + 2
*@lin,0 say "Nro. 24" (EN LETRA GRANDE...)
*
lin = lin + 10
@lin,0 Say Chr(13)
lin = lin + 1
@lin,0 Say Chr(27)+Chr(105) && Corte de pagina EPSON
lin = lin + 1
@lin,0 Say Chr(27)+Chr(100)+CHR(0) && Corte de pagina STAR
*
SET PRINTER TO NAME &xmaq_caja
SET DEVICE TO SCREEN
SET CONSOLE ON
*
IF !ratios.sel_caja && Pregunta por Impresora
cPrinter = GETPRINTER()
IF !empty(cPrinter)
=RAWPRINT(cPrinter,rutaARCHIVO)
ENDIF
ELSE && Imprime directamente sin preguntar
=RAWPRINT(xmaq_caja,rutaARCHIVO)
ENDIF
SET LIBRARY TO
*********************************************************************************************************