codigos escape para Tmu-220

3,692 views
Skip to first unread message

elkin dario uribe torres

unread,
Jul 5, 2012, 4:18:08 PM7/5/12
to publice...@googlegroups.com
Buenas tardes

Alguien que sepa o maneje los codigos escape para las impresoras tmu-220 y me los pueda facilitar le estaria inmensamente agradecido, por ahora lo que he podido hacer es centrar, colocar negrita, aumentar el tamaño de la fuente, cortar papel, abrir cajon monedero, pero me faltan algunos comando entre otros el de poder condensar la letra.  Entre otras alguien sabe si la clase de Victor Espina serviria para poder imprimir en este tipo de impresoras.

Por favor si alguien tiene un reporte eleborado con el reporteador me podria decir que tipo de letra se utilizaria en estos reportes.


Saludos


Elkin Uribe

gonzal...@hotmail.com

unread,
Jul 5, 2012, 5:11:27 PM7/5/12
to publice...@googlegroups.com
No puedes hacer mucho en calidad de letra no hay para hacer letra menuda, a no ser que imprimas en modo grafico, ahi la desventaja es que se hace lenta la impresion y la cinta se gasta rapido. a proposipo, cuanto te costo la impresora? en $us

elkin dario uribe torres

unread,
Jul 5, 2012, 9:23:26 PM7/5/12
to publice...@googlegroups.com
De que impresora estas hablando?

Si es la TMU-220 que no tenga para cortar papel es 135 usd mas economica aproximadamente que la que si la trae, en cuanto a el tipo de letra para reportes se que si se pueden utilizar en el reporteador, pero lo que se desea es rapidez no"belleza o estetica", por eso pregunto que tioo de letra deberia utilizar para imprimir rapido.

Todas las averiguaciones que he efectuado y te puedo decir que no son pocas, ninguna dice de como cambiar el tamaño de letra en estas impresoras por letra mas pequeña (parecida a las que se utiliza en las EPSON 1050, 1070, 300, ETC, en las cuales solo era colocar el chr(27) +chr(15) para condesar la letra).

Todo lo que apunta al manejo de estas impresoras en Delphi, .NET, Java es a reportes tal como se podria manejar en VISUAL FOXPRO.

Saludos


Elkin Uribe

gonzal...@hotmail.com

unread,
Jul 5, 2012, 9:42:38 PM7/5/12
to publice...@googlegroups.com
Es la misma impresora tmu-220, hice un programa para facturacion en un super, tambien pretendia encontrar un tipo de letra mas pequeño, pero no hay en esa impresora (por ahi tu lo encuentras), no es lo mismo que las otras impresoras epson de carro mas largo, para que la impresion sea mas rapida, la mas rapida, lo defino como impresora generica solo/texto ahi puedo aplicar los codigos esc de la impresora. y el problema esta resuelto. Ahi te mando un manualito por si no lo tienes para ver todos los codigos esc.

Saludos.
tm-u220.pdf
Message has been deleted
Message has been deleted

Víctor Hugo Espínola Domínguez

unread,
Jul 6, 2012, 11:45:07 AM7/6/12
to publice...@googlegroups.com
Hola Elkin

Adjunto documentación oficial de Epson y una rutina de impresión de ticket. Yo lo hago con los comandos ?, ??, y ??? destinados a una impresora "Genérica / Sólo Texto", porque así imprime más velozmente que con los drivers de Windows.

Saludos.
Víctor.
Programming manual APG_1005_receipt.rar_

elkin dario uribe torres

unread,
Jul 6, 2012, 1:16:57 PM7/6/12
to publice...@googlegroups.com
Muchas Gracias Victor procedere a mirarlo.


Saludos


Elkin Uribe

Ernesto Leiva

unread,
Oct 19, 2012, 3:21:42 PM10/19/12
to publice...@googlegroups.com
Muy buena informacion.
Casualmente yo andaba buscando algo similar.
Tambien probare.

Antonio Lopez

unread,
Nov 6, 2012, 3:45:08 PM11/6/12
to publice...@googlegroups.com
Hola amigos del foro, estoy inciando un sistema de tiket con una TMU 950p  marca Epson, no tengo idea de como iniciar, me podian dar alguna guia ?  o alguien que tenga experiencia en este tipo de impresores ?, gracias de antemano por su ayuda

Mario Escudero

unread,
Jan 23, 2016, 8:08:56 AM1/23/16
to Comunidad de Visual Foxpro en Español
Hola Victor:
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.
Cómo sería la última linea es este caso ???
Adjunto mi rutina de impresion para Impresoras Ticketertas Matricales como Epson TM U220
Mil gracias de antemano
Saludos
****************************************************************************************************************

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 


*********************************************************************************************************

Jorge Lacruz

unread,
Feb 2, 2019, 12:51:36 PM2/2/19
to Comunidad de Visual Foxpro en Español
Amigo como logro centrar la impresion a mi me sale a la derecha y no se que hacer

Mario Escudero

unread,
Feb 2, 2019, 4:40:56 PM2/2/19
to publice...@googlegroups.com
Hola:
Te paso el código que uso para imprimir facturas y boletas.
Los datos son ficticios.
No sé si te sirva de algo.
Saludos

----
Mario Escudero
995817087 
     

imprimir_xxx.prg
Reply all
Reply to author
Forward
0 new messages