Epson TM-T70

08/11/2007 - 18:12 por Catalin Lungu | Informe spam
Hola,
Tengo que hacer una clase para impresión de tickets con esta impresora
termica. No voy a usar ningún driver solo sequencias de escape que voy a
enviar por el COM2. El tema es que no me funciona mas que la impresión
estandar, no puedo modificar la fuente, no puedo poner negrita, subrayado
(0x1B 0x2D 0x31), no puedo inicializar la impresora (0x1B 0x40) y recoger
información de los sensores de la impr.

Tengo todas las secuencias de escape pero no soy capaz de seguir adelante.
Hay alguien que tenga experiencia con este tipo de programación?

Gracias,
Catalin

Preguntas similare

Leer las respuestas

#6 RFOG
09/11/2007 - 10:59 | Informe spam
"RFOG" wrote in message
news:%
"Catalin Lungu" wrote in message
news:
Gracias a los por contestar.
No creo que me vale con eso, porque es una simple comunicación serie. En
el otro lado podria haber cualquier otro dispositivo, que no sea ni
impresora. Los datos los envio de la siguiente forma

Para texto uso esta función.
public void Write(string txt)
{
byte[] outputData;




A simple vista lo estás haciendo bien.

Baja la velocidad de 115000 a algo menos tanto en tu programa . Es posible
que escribiendo desde un dispositivo embebido más la sobrecarga del .NET
esa velocidad sea demasiado rápida para el dispositivo y se produzcan
retardos que la impresora no sea capaz de interpretar.

Si aun así no funcionara (y sí funciona con otros modelos) también podría
ser que esa impresora en concreto estuviera mal.
Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Mi blog sobre literatura: http://rfog.blogsome.com
Libros, ciencia ficción y programación
> Vive sólo para tí si puedes, pues sólo para tí si mueres, mueres.




Otra cosa: pudiera ser que los códigos de escape no fueran los correctos, es
decir, que la impresora, pese a ser una Epson, esté emulando a la IBM
Propinter XL en lugar de a la Epson LQ 2550 (que son los dos formatos más
conocidos y estándar -¿Recordais, viejos carrozas, cuando había que
configurar a cualquier impresora matricial con cualquiera de esos dos
protocolos para que funcionaran bien en MS-DOS?).

¿Tiene manual con los códigos de escape?

Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Mi blog sobre literatura: http://rfog.blogsome.com
Libros, ciencia ficción y programación
Vive sólo para tí si puedes, pues sólo para tí si mueres, mueres.
Respuesta Responder a este mensaje
#7 Catalin Lungu
09/11/2007 - 11:06 | Informe spam
Ya probe con todas las velocidades disponibles. Cuando he dicho que con otra
impresora me funciona me referia a otra marca. La impresora está bien porque
desde PC y con driver imprime bien, el selftest también. Parace que no
entiende las secuencias de escape o algo asi, porque texto plano si que le
envioy lo imprime. Los de epson me dieron también unos manuales con ejemplos
en qbasic y intentando reproducir estos ejemplos en c# parece que no va. Ya
no se como seguir. Gracias por todo.
Respuesta Responder a este mensaje
#8 Catalin Lungu
09/11/2007 - 11:14 | Informe spam
Si tengo todos los codigos de escape ademas de un porron de ejemplos qbasic.

También te voy a poner un ejemplo de otro manual con codigo qbasic. Yo creo
que el ";" no hay que ponerlo en C# o si? Dime por favor como escribirias
este código en C#?

PRINT #1, CHR$(&h1B); "@" ? Initializes the printer

PRINT #1, CHR$(&h1B); "3"; CHR$(18); ? Sets the line spacing

PRINT #1, CHR$(&h1B); "U"; CHR$(1); ? Selects uni-directional printing

PRINT #1, CHR$(&h1B); "a"; CHR$(1); ? Selects center print position

PRINT #1, CHR$(&h1D); "!"; CHR$(17); ? Selects double-height and
double-width modes

FOR I = 1 TO 14*2

READ d$: PRINT #1, CHR$(VAL ("&h"+d$));

NEXT I

PRINT #1, CHR$(&h1D); "!"; CHR$(0); ? Cancels double-height and double-width
modes

PRINT #1, "Thank you"; CHR$(&hD); ? Printing with CR

PRINT #1, CHR$(&h1D); "!"; CHR$(17); ? Selects double-height and
double-width modes

FOR I = 1 TO 14*2

READ d$: PRINT #1, CHR$(VAL ("&h"+d$));

NEXT I

PRINT #1, CHR$(&h1B); "2";

PRINT #1, CHR$(&h1B); "U"; CHR$(0); ? Selects uni-directional printing

PRINT #1, CHR$(&h1D); "!"; CHR$(0); ? Cancels double-height and double-width
modes

PRINT #1, CHR$(&h1B); "J"; CHR$(4); ? Feeds paper (adjust printing position)

PRINT #1, "APRIL 5. 2000 10:30"

PRINT #1, CHR$(&h1B); "d"; CHR$(3); ? Printing and feeding paper 3 lines

PRINT #1, CHR$(&h1B); "a"; CHR$(0); ? Adjust to Left Alignment

PRINT #1, "TM-U675 6.75"; CHR$(&hA);

PRINT #1, "TM-H6000 6.00"; CHR$(&hA);

PRINT #1, "PS-170 1.70"; CHR$(&hA); CHR$(&hA);

PRINT #1, CHR$(&hA);
Respuesta Responder a este mensaje
#9 RFOG
09/11/2007 - 11:37 | Informe spam
"Catalin Lungu" wrote in message
news:
Si tengo todos los codigos de escape ademas de un porron de ejemplos
qbasic.

También te voy a poner un ejemplo de otro manual con codigo qbasic. Yo
creo
que el ";" no hay que ponerlo en C# o si? Dime por favor como escribirias
este código en C#?

PRINT #1, CHR$(&h1B); "@" ? Initializes the printer

PRINT #1, CHR$(&h1B); "3"; CHR$(18); ? Sets the line spacing

PRINT #1, CHR$(&h1B); "U"; CHR$(1); ? Selects uni-directional printing

PRINT #1, CHR$(&h1B); "a"; CHR$(1); ? Selects center print position

PRINT #1, CHR$(&h1D); "!"; CHR$(17); ? Selects double-height and
double-width modes

FOR I = 1 TO 14*2

READ d$: PRINT #1, CHR$(VAL ("&h"+d$));

NEXT I

PRINT #1, CHR$(&h1D); "!"; CHR$(0); ? Cancels double-height and
double-width
modes

PRINT #1, "Thank you"; CHR$(&hD); ? Printing with CR

PRINT #1, CHR$(&h1D); "!"; CHR$(17); ? Selects double-height and
double-width modes

FOR I = 1 TO 14*2

READ d$: PRINT #1, CHR$(VAL ("&h"+d$));

NEXT I

PRINT #1, CHR$(&h1B); "2";

PRINT #1, CHR$(&h1B); "U"; CHR$(0); ? Selects uni-directional printing

PRINT #1, CHR$(&h1D); "!"; CHR$(0); ? Cancels double-height and
double-width
modes

PRINT #1, CHR$(&h1B); "J"; CHR$(4); ? Feeds paper (adjust printing
position)

PRINT #1, "APRIL 5. 2000 10:30"

PRINT #1, CHR$(&h1B); "d"; CHR$(3); ? Printing and feeding paper 3 lines

PRINT #1, CHR$(&h1B); "a"; CHR$(0); ? Adjust to Left Alignment

PRINT #1, "TM-U675 6.75"; CHR$(&hA);

PRINT #1, "TM-H6000 6.00"; CHR$(&hA);

PRINT #1, "PS-170 1.70"; CHR$(&hA); CHR$(&hA);

PRINT #1, CHR$(&hA);






Pues debe ser un poltergeist, porque debería funcionarte todo. De todos
modos no sé a qué te refieres con lo del ";". Que yo sepa eso no se pone en
los códigos de escape a no ser que algún byte dentro de la secuencia del
código sea el valor ASCII ';'.

De todos modos haz una prueba: monitoriza lo que envías, o conecta ese
puerto a otro intercambiando el TX por el RX, o conecta tu propio TX con tu
RX y luego miras lo que recibes, a ver si realmente envías lo que debes.

Si quieres "snifar" un puerto serie tienes el Realterm
(http://realterm.sourceforge.net/), que trae cositas interesantes. Yo antes
recomendaba el porgrama de pago DockLight, pero el Realterm es OpenSource;
lo único a tener en cuenta es que debes ejecutarlo con permisos de
administrador.

Como estás haciendo el programa en C#, y aunque sea para CE, ese mismo
programa debería ejecutarte en un PC sin tocar nada. ¿Funciona en un PC?
Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Mi blog sobre literatura: http://rfog.blogsome.com
Libros, ciencia ficción y programación
Vive sólo para tí si puedes, pues sólo para tí si mueres, mueres.
Respuesta Responder a este mensaje
#10 Catalin Lungu
09/11/2007 - 11:44 | Informe spam
No funciona porque uso OpenNETCF para la comunicación serial. Con lo del ";"
quiero decir que está en el codigo qbasic y no se si hay que ponerlo o no? Y
si hice la prueba y lo envio lo recibo. Tienes por casualidad los codigos de
escape para la IBM Proprinter tal vez sea eso?

Gracias.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida