Impresora TM-U220D.

4,958 views
Skip to first unread message

mpulla

unread,
Nov 18, 2011, 1:22:30 AM11/18/11
to Comunidad de Visual Foxpro en Español
El dia de hoy me llego una impresora TM-U220D (USB) baje el driver de
Epson la instale corri un ejemplo que me pasaron aqui en el grupo
IMPRIME_TICKET, corre perfecto

mis dudas.
1.-que le estoy diciendo a la impresora con estos comandos
*Se inicializa el codigo de Impresion de Tiket's
??? CHR(27)+CHR(48)+CHR(27)+CHR(67)+CHR(44)
??? CHR(18)+CHR(27)+CHR(77)+CHR(15)
??? CHR(27)+CHR(77)+CHR(20)

2.- Como establecer el margen superior
*Se imprime el margenSuperior
FOR I=1 TO LNMARGEN_SUP
??? CHR(10)+CHR(13)
ENDFOR
Pero la distancia del borde del papel a el comienzo de la impresion es
de 3.02 cm.

3.- Cuantos cm recorre cada vez que ??? CHR(10)+CHR(13)

4.- Una vez impreso el detalle de la factura como recorrer el papel
hasta el final de la factura para que quede en el lugar correcto para
cortar el papel.

5.- como configurar la impresora para que imprima ñ

Gracias por su ayuda

Mauricio

Víctor Hugo Espínola Domínguez

unread,
Nov 18, 2011, 10:39:46 AM11/18/11
to publice...@googlegroups.com
Hola Mauricio

Adjunto una planilla de los comandos para Epson.

No conozco la impresora que recibiste, pero en general las impresoras matriciales son más rápidas si usas el driver "Generic/Text only" (Genérica/Sólo texto). Tampoco uses el generador de reportes de VFP porque los tickets tienen longitud de página variables.

Para imprimir caracteres especiales prueba con:

 ? CPCONVERT( 1252, 850, "ÁÉÍÓÚÜÑñáéíóúü" )
o
 ? CPCONVERT( 1252, 437, "ÁÉÍÓÚÜÑñáéíóúü" )

Saludos, Víctor.
Comandos EPSON ESC P2.rar

Fabricio

unread,
Nov 18, 2011, 11:48:12 AM11/18/11
to Comunidad de Visual Foxpro en Español
Hola Mauricio

Este tipo de impresorra puedes usarla con Reports, no necesariamente
debes enviar la impesion por medio de prg.

UNa vez que instalas el driver debes seleccionar el font FontB11, deja
la impresora como pedeterminada.

Ahora puedes crear tus reports y todo sin problemas.

Saludos

Fabricio

mpulla

unread,
Nov 18, 2011, 3:52:44 PM11/18/11
to Comunidad de Visual Foxpro en Español
Victor y Fabricio.

Gracias por responder.

Me animo por enviarlo via prg. con los reports se demora mas segun he
leido.
En los comandos Espon que envio Victor no encuentro el significado
para:

??? CHR(27)+CHR(48)+CHR(27)+CHR(67)+CHR(44)
??? CHR(18)+CHR(27)+CHR(77)+CHR(15)
??? CHR(27)+CHR(77)+CHR(20)

Sobre el driver "Generic/Text only" voy a probarlo.

Impresion de caracteres especiales voy a probar CPCONVERT cuando llege
a casa.

Gracias por la ayuda si tengo algun problema estere consultando.

Saludos.
Mauricio.

Víctor Hugo Espínola Domínguez

unread,
Nov 18, 2011, 4:54:11 PM11/18/11
to publice...@googlegroups.com
Hola Mauricio

??? CHR(27)+CHR(48)+CHR(27)+CHR(67)+CHR(44) : es la conjunción de:

??? CHR(27)+CHR(48)
*  Alimentación del papel
* ESC 0 48 30 Selecciona espaciado de línea de 1/8 pulgadas

y

???CHR(27)+CHR(67)+CHR(44)
* Formato de página
* ESC C n 67 43 Determina longitud de página en líneas
* n = número de líneas
* en este ejemplo 44 líneas

??? CHR(18)+CHR(27)+CHR(77)+CHR(15): es la conjunción de:

??? CHR(18)
* Realce de impresión
* DC2 18 12 Cancela modo comprimido

y

??? CHR(27)+CHR(77)
* Selección de fuente
* ESC M 77 4D Selecciona 10.5 puntos, 12 cpp

y

??? CHR(15)
* Realce de impresión
* SI 15 0F Selecciona modo comprimido

??? CHR(27)+CHR(77)+CHR(20): es la conjunción de:
??? CHR(27)+CHR(77)
* Selección de fuente
* ESC M 77 4D Selecciona 10.5 puntos, 12 cpp

y

???? CHR(20)
* Realce de impresión
* DC4 20 14 Cancela doble anchura (1 línea)

Saludos, Víctor

P.D.: Para mayor legibilidad de tus programas puedes definir esos valores como constantes declaradas o como propiedades públicas de tu aplicación. por ejemplo:

#DEFINE TMU_NUEVA_LINEA CHR(10)+CHR(13)
...

mpulla

unread,
Nov 18, 2011, 10:19:00 PM11/18/11
to Comunidad de Visual Foxpro en Español
Hola Victor.

Gracias por tu tiempo.

Espero me puedas ayudar.

En mi caso voy a imprimir una factura pre impresa, todavía no tengo la
longitud del la factura ni cuánto mide el encabezado.

Entonces por ejemplo digamos que la factura mide 20 cm, de los cuales
4 cm. son para datos pre impresos de la empresa como logo nombre de la
empresa dirección y demás.

Según la configuración para saltar 4 cm (asumiendo que cada salto
tiene 0.5 cm) el codigo seria este

FOR I=1 TO 8
??? CHR(10)+CHR(13)
ENDFOR

*luego imprimo los datos
??? CHR(10)+CHR(13)+ Fecha hora
??? CHR(10)+CHR(13)+ Cajero

*Datos del cliente:
??? CHR(10)+CHR(13)+Nombre
??? CHR(10)+CHR(13)+C.I.
??? CHR(10)+CHR(13)telefono
??? CHR(10)+CHR(13)+Dirección
??? CHR(10)+CHR(13)+'Cant Articulo Precio Importe'

*detalle de la factura (1 a n)
??? CHR(10)+CHR(13)+cantidad + articulo + precion

??? CHR(10)+CHR(13)+sumatoria.

de aquí como hacer para que la impresora avance hasta al final de la
factura?
Quisiera saber como calcular el tamaño de la línea impresa para poder
hacer el avance de papel exacto.

Saludos.
Mauricio.

On 18 nov, 16:54, Víctor Hugo Espínola Domínguez <vichus...@gmail.com>
wrote:


> Hola Mauricio
>
> ??? CHR(27)+CHR(48)+CHR(27)+CHR(67)+CHR(44) : es la conjunción de:
>
> ??? CHR(27)+CHR(48)
> *  Alimentación del papel
> * ESC 0 48 30 Selecciona espaciado de línea de 1/8 pulgadas
>
> y
>
> ???CHR(27)+CHR(67)+CHR(44)
> * Formato de página

> * ESC C *n* 67 43 Determina longitud de página en líneas
> ** n* = número de líneas

Dario_El_Cyber_Gaucho

unread,
Nov 19, 2011, 7:38:09 AM11/19/11
to publice...@googlegroups.com
Tienes que saber cuantas lineas en total tiene la factura hay que hacer
la prueba imprimiendo toda la hoja con lineas, a partir de la ultima
impresa sacas la diferencia y con ese valor un for que imprima vacio
hasta salir de esta.

El 19/11/2011 12:19 a.m., mpulla escribi�:


> Hola Victor.
>
> Gracias por tu tiempo.
>
> Espero me puedas ayudar.
>

> En mi caso voy a imprimir una factura pre impresa, todav�a no tengo la
> longitud del la factura ni cu�nto mide el encabezado.


>
> Entonces por ejemplo digamos que la factura mide 20 cm, de los cuales
> 4 cm. son para datos pre impresos de la empresa como logo nombre de la

> empresa direcci�n y dem�s.
>
> Seg�n la configuraci�n para saltar 4 cm (asumiendo que cada salto


> tiene 0.5 cm) el codigo seria este
>
> FOR I=1 TO 8
> ??? CHR(10)+CHR(13)
> ENDFOR
>
> *luego imprimo los datos
> ??? CHR(10)+CHR(13)+ Fecha hora
> ??? CHR(10)+CHR(13)+ Cajero
>
> *Datos del cliente:
> ??? CHR(10)+CHR(13)+Nombre
> ??? CHR(10)+CHR(13)+C.I.
> ??? CHR(10)+CHR(13)telefono

> ??? CHR(10)+CHR(13)+Direcci�n


> ??? CHR(10)+CHR(13)+'Cant Articulo Precio Importe'
>
> *detalle de la factura (1 a n)
> ??? CHR(10)+CHR(13)+cantidad + articulo + precion
>
> ??? CHR(10)+CHR(13)+sumatoria.
>

> de aqu� como hacer para que la impresora avance hasta al final de la
> factura?
> Quisiera saber como calcular el tama�o de la l�nea impresa para poder


> hacer el avance de papel exacto.
>
> Saludos.
> Mauricio.
>
>
>
>
>

> On 18 nov, 16:54, V�ctor Hugo Esp�nola Dom�nguez<vichus...@gmail.com>
> wrote:
>> Hola Mauricio
>>
>> ??? CHR(27)+CHR(48)+CHR(27)+CHR(67)+CHR(44) : es la conjunci�n de:
>>
>> ??? CHR(27)+CHR(48)
>> * Alimentaci�n del papel
>> * ESC 0 48 30 Selecciona espaciado de l�nea de 1/8 pulgadas
>>
>> y
>>
>> ???CHR(27)+CHR(67)+CHR(44)
>> * Formato de p�gina
>> * ESC C *n* 67 43 Determina longitud de p�gina en l�neas
>> ** n* = n�mero de l�neas
>> * en este ejemplo 44 l�neas
>>
>> ??? CHR(18)+CHR(27)+CHR(77)+CHR(15): es la conjunci�n de:
>>
>> ??? CHR(18)
>> * Realce de impresi�n


>> * DC2 18 12 Cancela modo comprimido
>>
>> y
>>
>> ??? CHR(27)+CHR(77)

>> * Selecci�n de fuente


>> * ESC M 77 4D Selecciona 10.5 puntos, 12 cpp
>>
>> y
>>
>> ??? CHR(15)

>> * Realce de impresi�n


>> * SI 15 0F Selecciona modo comprimido
>>

>> ??? CHR(27)+CHR(77)+CHR(20): es la conjunci�n de:
>> ??? CHR(27)+CHR(77)
>> * Selecci�n de fuente


>> * ESC M 77 4D Selecciona 10.5 puntos, 12 cpp
>>
>> y
>>
>> ???? CHR(20)

>> * Realce de impresi�n
>> * DC4 20 14 Cancela doble anchura (1 l�nea)
>>
>> Saludos, V�ctor


>>
>> P.D.: Para mayor legibilidad de tus programas puedes definir esos valores

>> como constantes declaradas o como propiedades p�blicas de tu aplicaci�n.


>> por ejemplo:
>>
>> #DEFINE TMU_NUEVA_LINEA CHR(10)+CHR(13)
>> ...
>>

>> El 18 de noviembre de 2011 16:52, mpulla<jmaurici...@yahoo.es> escribi�:

Víctor Hugo Espínola Domínguez

unread,
Nov 19, 2011, 8:31:48 AM11/19/11
to publice...@googlegroups.com
Hola Mauricio

En primer lugar olvida todo lo que aprendiste sobre el sistema métrico decimal. Las impresoras y los formularios contínuos manejan las longitudes en pulgadas y fracciones de pulgadas.

Consigue una regla con divisiones en pulgadas y fracciones de 1/8 por un lado y 1/6 por el otro. Si no consigues ese tipo de regla entonces aplica la idea de Darío, imprimiendo en una hoja la cantidad de líneas que cubra completamente tu factura preimpresa; por ejemplo:
*1234+6789*1234+6789*1234+6789*1234+6789*1234+6789*1234+6789*1234+6789*
01 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
02 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...
50 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

La separación estandarizada entre líneas es de 1/6 de pulgada (0,42333...cm), ésta se obtiene con el comando: ??? CHR(27) + CHR(50).
Puedes probar si te sirve la separación de 1/8 de pulgada: ??? CHR(27) + CHR(48),  así podrás imprimir más items por hoja, pero las líneas estarán más apretujadas.

FOR I=1 TO 8
       ??? CHR(10)+CHR(13)
ENDFOR

es equivalente a:

FOR I=1 TO 8
       ?                     && Deja una línea en blanco
ENDFOR

En total deja 8 líneas en blanco: ( 8*1/6 ) pulgadas u ( 8*1/8 ) pulgadas dependiendo de la configuración anteriormente mencionada.

Los datos del cliente puedes imprimirlos de esta forma:
? Nombre
? CI
? telefono
? Dirección
? 'Cant   Articulo   Precio    Importe'

Mira la ayuda del comando ?, puedes especificar la columna donde imprimirás entre otras cosas.

Saludos, Víctor

P.D.: En tu caso puedes usar el generador de reportes, pero sinceramente no sé cuál será más rapido. Si tienes tiempo y ganas haz la prueba y nos pones al tanto.

mpulla

unread,
Nov 19, 2011, 9:59:19 AM11/19/11
to Comunidad de Visual Foxpro en Español
Gracias.

Dario sencillo y efectivo.
Victor buena aclaración, apenas pueda hago unas pruebas y les comento.

Saludos.
Mauricio.

Fabricio

unread,
Nov 20, 2011, 3:29:15 PM11/20/11
to Comunidad de Visual Foxpro en Español
No entiendo por que van a dar a hacer una factura preimpresa para
usarse en una impresora de ticket, parece que no entenden cual es el
concepto y objetivo de este tipo de impresoras.

El objetivo principal es para facturar a como se hace en el
supermercado, si un cliente lleva un item, solo se le entrega un
pedacito como factura, en cambio si otro lleva 100 item, pues se
llevará una factura de un metro de largo.

Para aclarar, en este tipo de impresora no debes preocuparte por el
alto o largo del papel, solo debes preocuparte del ancho para hacer
caber tus datos, el largo lo maneja la propia impresora.

Ahorrate todo eso de los código esc/p, al comienzo yo pensaba igual,
pero después de varias pruebas me quedé con los reports.

Además eso de que con reports es mas lento que con prg es algo
ilógico, la velocidad de impresión depende de la propia impresora no
del software o la manera en que le envíes los datos.

Saludos

Fabrico

mpulla

unread,
Nov 20, 2011, 8:25:46 PM11/20/11
to Comunidad de Visual Foxpro en Español
Hola Fabricio.

Tienes razón en lo que dices del pre impreso, pero para imprimir la
factura completa se necesita tramitar el permiso en el SRI y las
personas para las cuales desarrolle el software no están interesadas
en hacer el papeleo.

Saludos
Mauricio.

mpulla

unread,
Nov 20, 2011, 10:04:42 PM11/20/11
to Comunidad de Visual Foxpro en Español
Hola...

Tengo el siguiente código para saber cuantas líneas tiene la factura.
Pero solamente imprime hasta el # 49, luego al mandar a imprimir de
nuevo la impresión comienza en el #50 y nuevamente termina el #49, se
esta quedando la ultima linea en el buffer
Es normal este comportamiento?
Como evitarlo?

Estoy usuando VFP 9.0 SP 2, W7, Impresora TM-U220D realize pruebas con
con controlador de texto generico o el controlador propio de la Epson
TM-U220 receiptE4 y tengo el mismo resultado.

Saludos
Mauricio

LCRUTA_IMPRESORA = "'TM-U220'"

SET CONSOLE OFF
SET PRINTER TO NAME &LCRUTA_IMPRESORA

??? CHR(27)+CHR(48)+CHR(27)+CHR(67)+CHR(44)
??? CHR(18)+CHR(27)+CHR(77)+CHR(15)
??? CHR(27)+CHR(77)+CHR(20)

FOR I=1 TO 50
??? CHR(10)+CHR(13) + TRANSFORM(I)
* ? CHR(10)+CHR(13) + TRANSFORM(I)
ENDFOR

SET PRINTER TO
CLOSE PRINT
SET CONSOLE ON

Carlos Alfaro

unread,
Nov 20, 2011, 10:37:10 PM11/20/11
to publice...@googlegroups.com
Saludos Mauricio:

No sé si esto sea la causa, pero veo que envías primero el LF (chr(10)) y
después el CR (char(13)), por lo que sé, van al contrario.

También podrías probar, agregarlos al finalizar la impresión.

Bendiciones.

Carlos Alfaro

Roberto Lemos

unread,
Nov 21, 2011, 7:04:22 AM11/21/11
to Comunidad de Visual Foxpro en Español
Agrega esto al final,

??? Chr(10)+Chr(13)
??? Chr(27)+'d'+Chr(8)
??? Chr(27)+'i'

-----Mensaje original-----
From: mpulla
Sent: Sunday, November 20, 2011 10:04 PM
To: Comunidad de Visual Foxpro en Espa�ol


Subject: [vfp] Re: Impresora TM-U220D.

Hola...

Tengo el siguiente c�digo para saber cuantas l�neas tiene la factura.


Pero solamente imprime hasta el # 49, luego al mandar a imprimir de

nuevo la impresi�n comienza en el #50 y nuevamente termina el #49, se

Miltiño

unread,
Nov 21, 2011, 7:56:27 AM11/21/11
to Comunidad de Visual Foxpro en Español
Sobre mi experiencia en las TMU:
1.- El Usar códigos ESC resulta muy demoroso y complicado en la
depuración, pero en la cuestión de cuadre de impresión en el Tiket es
màs exacto.
2.- Es posible utilizar el report form para enviar la impresión
siempre y cuando se utilize el tipo de letra que venga con la
impresora. Este es el único método que funciona bien con VFP +
Terminal Server. Se debe crear un tamaño de papel adecuado en el
servidor y en cada terminal. El ajuste al tamaño se hace un poco
complicado pero cuando logras cuadrar todo va bien.
3.- Un método sencillo de hacer un report es crear el siguiente
cursor: REPORTE ( Tipo C(3), Datos C(40)), a este cursor lo vamos
llenando con las lineas que tendrá el reporte, incluyendo los totales
y subtotales el campto Tipo ha de contener el Tipo de Letra o el
tamaño que necesites. Finalmente creas un sencillo report form, pones
los margenes a 0 y en el detalle incluyes el campo DATOS de longitud
total del reporte, si deseas manejar color rojo o negrita en la línea
insertas una nuevo campo en el detalle lo sobrepones al anterior y
utilizar la clausula PRINT WHEN del campo para imprimir en el tipo que
necesitas, esta es la mejor forma de imprimir con Report Form.

Att.

MILTON CACHIPUENDO
Servysistem Online
Ibarra - Ecuador


Intel Man

unread,
Nov 21, 2011, 8:23:57 AM11/21/11
to publice...@googlegroups.com
Hola, lo que yo hago es imprimir una linea en blanco al final porque tambien tengo ese mismo problema.

@say prow()+1, 0 say ¨¨

Saludos


> Date: Sun, 20 Nov 2011 19:04:42 -0800

> Subject: [vfp] Re: Impresora TM-U220D.

mpulla

unread,
Nov 21, 2011, 10:30:50 AM11/21/11
to Comunidad de Visual Foxpro en Español
Foxeros gracias

En la noche prueba sus sugerencias y les comento.

Saludos.
Mauricio

Jhonny Zambrana

unread,
Nov 21, 2011, 9:05:21 PM11/21/11
to Comunidad de Visual Foxpro en Español
Haber como que todos tienen mucho exito con la TMU-220xx, les comento
que con la que tiene conexion SERIAL nunca pude enviar los codigos ESC
ni los codigos POS, bueno si los envio, pero me imprime un caracter
ascii, alguien podria comentarme a mi mail, los detalles de como lo
hacen por mas que pruebo de una y otra forma siempre tengo solo texto
plano, aun estando con el driver de la impresora TMU.

Ahora solo para probar compramos una con conexion PARALELA, a la
antigua como cuando usabamos la LX-300 y otras glorias del pasado,
espero que con esto si se pueda, hacer correr, los famosos codigos, en
VFP 5 era tan facil y sencillo.

Y alaguien podria ilustrarme un poco mas sobre el uso CPCONVERT, como
se usa???

Gracias mil y que esten bien.

mpulla

unread,
Nov 21, 2011, 10:48:01 PM11/21/11
to Comunidad de Visual Foxpro en Español
Buenas noches...

Gracias a todos por responder, permitanme dar nombres y resultados por
si a otro foxero le sirve...

Carlos cambiar:
CHR(10)+CHR(13) por CHR(13)+CHR(10)
no dio resultado.

Roberto tu codigo dio resultado
supongo que es un salto de pagina ya que salta 3 cm. ó 1.02 pulgadas.
??? Chr(27)+'d'+Chr(8)

Víctor Espínola me ayudo con codigos pero esta no la encuentro, que
significa este codigo..
??? Chr(27)+'i'

Intel Man.
Imprimir una linea en blanco no dio resultado...

Jhonny.
La impresora que tengo al momento tiene una conexion USB.


Estoy adaptando el codigo a mi aplicacion para luego probar con la
facturas pre impresas que me llegan el Jueves, si tengo problemas
espero contar con ustedes.

Saludos.
Mauricio

Fabricio

unread,
Nov 22, 2011, 9:03:09 AM11/22/11
to Comunidad de Visual Foxpro en Español
Entonces si ya tienes un formato preimpreso la impresión con el report
se facilita, debes definir el encabezado de página, el detalle y el
pie de página con tamaño fijo.

Al momento de grabar tu factura debes limitar la cantidad de items,
mandas a imprimir y todo más sencillo, para que complicarte con los
códigos ESC/P

Saludos

Fabricio

Víctor Hugo Espínola Domínguez

unread,
Nov 22, 2011, 10:28:40 AM11/22/11
to publice...@googlegroups.com
Hola Jhonny

Prueba instalando tu impresora como "Genérica/Sólo texto".

Saludos, Víctor.

Víctor Hugo Espínola Domínguez

unread,
Nov 22, 2011, 10:59:01 AM11/22/11
to publice...@googlegroups.com
Hola Mauricio

Repito el mensaje porque aparentemente no pude adjuntar el archivo. Lo subí al sitio del grupo: https://sites.google.com/site/archivosvfp9/archivos

??? Chr(27) + 'i' + CHR(1)  && Activa impresión inmediata, carácter a carácter 

??? Chr(27) + 'i' + CHR(0)  && Desactiva impresión inmediata

Saludos, Víctor

Mario Alfredo

unread,
Nov 25, 2011, 11:58:33 AM11/25/11
to Comunidad de Visual Foxpro en Español
cundo imprimas facturas ten en cuenta esto que me paso a mi

tene una variable de los items que caben en tu factura
por ejemplo, si tu factura tiene 10 items
numerodeitems = 10
y a la hora de facturar solo facturas 5
hablo de los productos
entonces graba los items que faltan,
que serian 5, porque es bien engorroso
manejar cuantos items en blanco
recorreras, para saltar hasta tus totales
y asi solo imprimes aquelllos que la cantidad
es diferente de 0 cero

entendes lo que hablo

On Nov 22, 9:59 am, Víctor Hugo Espínola Domínguez


<vichus...@gmail.com> wrote:
> Hola Mauricio
>
> Repito el mensaje porque aparentemente no pude adjuntar el archivo. Lo subí
> al sitio del grupo:https://sites.google.com/site/archivosvfp9/archivos
>
> ??? Chr(27) + 'i' + CHR(1)  && Activa impresión inmediata, carácter a
> carácter
>
> ??? Chr(27) + 'i' + CHR(0)  && Desactiva impresión inmediata
>
> Saludos, Víctor
>

mpulla

unread,
Nov 25, 2011, 2:18:02 PM11/25/11
to Comunidad de Visual Foxpro en Español
Hola

Victor Gracias por la documentacion...

Mario gracias por la recomendación...

Al parecer hoy entregan las facturas pre impresas, entonces me toca
hacer las pruebas cualquier novedad se las comento.

Mauricio

Reply all
Reply to author
Forward
0 new messages