PDA

Ver la Versión Completa : Cut Position en impresora Zebra


hev02120
26-02-2015, 00:17:34
Estimado hgiacobone, tengo que imprimir en una TLP 2844 con Delphi 7 y estoy teniendo problemas con la posicion de corte.
Veo que indicas que por cada ticket hay que, además, enviar un comando de cot position, como sería esto?, podrías poner un ejemplo?. Desde ya, mUchas gracias!

Casimiro Notevi
26-02-2015, 00:40:31
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), gracias por tu colaboración :)

He movido el mensaje de hilo (he creado uno nuevo) porque tu pregunta no tenía nada que ver con aportar algo al problema de donde lo pusiste. Además he cambiado el título por uno más descriptivo.
Ten en cuenta nuestra guía de estilo, gracias :)

newtron
26-02-2015, 10:11:48
Hola.

¿Cómo estás imprimiendo? ¿usando el lenguaje ZPL/EPL?.

hev02120
26-02-2015, 15:31:15
Estoy imprimiendo vía EPL. Lo curioso es que la impresora no me respeta el posicionamiento de los tickets. Te cuento paso a paso a ver que pensas:

El contexto es: Windows 7 con dirvers de Zebra y conexión USB a mi notebook.
Estoy usando tickets continuos de alta calidad térmicos (sin ribbon) tipo entrada a recitales. Estos tickets están troquelados y tienen la famosa banda negra en la parte posterior.

Intento calibrar como he visto en videos y textos:

1) Prendo la impresora con el botón feed apretado.
2) Ni bien empieza a parpadear en rojo suelto y empieza a calibrar.
3) Saca como 7/8 tickets en blanco y por ultimo imprime la configuración y el botón feed queda en color naranja. Vuelvo a presionar y queda en verde.

Luego intento enviar una prueba y me la imprime, pero no paran de salir tickets hasta que se pone en rojo.

Los comandos que envío son: ( ejemplo de hgiacobone )

sPRN:= 'ZDesigner TLP 2844'; // nombre de la impresora que se obtiene de la variable Printer.-
L:=Chr(13)+chr(10);
cadena:= 'I8,A,001'+L; //charset
cadena:= cadena + 'Q480,24'+L; //alto en Dots (10mm=80Dots...1mm=8dots)
cadena:= cadena + 'q800' +L; //ancho en Dots 406
cadena:= cadena + 'rN' +L; //disable double buffer
cadena:= cadena + 'S3' +L;
cadena:= cadena + 'D7' +L;
cadena:= cadena + 'R0,0' +L; //windows mode //agregado
cadena:= cadena + 'ZT' +L; //from Top
cadena:= cadena + 'WY' +L; //windows mode //agregado
cadena:= cadena + 'OD' +L; //Direct thermal //Od=Transfer ribbon
{ cadena:= cadena + 'R191,0' +L; //punto de referencia para datos centrados (si se utiliza, sobreescribe lo indicado por comando "q") }
cadena:= cadena + 'f100' +L; //cut position between labels
cadena:= cadena + 'N' +L; //clear image buffer
// cadena:= cadena + 'C' +L; //Cut inmmediate

{Ejemplo donde se recibe datos como:
A:='A52,49,0,4,1,1,N,"Impresión directa..."' +L;
B:='B46,170,0,E30,4,8,70,B,"3836556465461"' +L;
C:='A90,50,0,3,1,1,N,"Aquí hay una leyenda..."' +L;
D:='A90,70,0,3,1,1,N,'+'"Precio: '+FormatFloat('0.00', 10.25)+'"' +L;
E:='A50,20,1,1,1,1,N,'+'"Fecha: '+DateToStr(date)+'"' +L;
}

fin:= 'P1'+L;
// fin:= fin+'FE'+L;
cadena:= cadena +A+B+C+D+E + fin;

// cadena:= 'U'+L;

Result:= Write_RAW_StringToPrinter(cadena, sPRN);

// cadena:= 'C' +L; //Cut inmmediate
// Result:= Write_RAW_StringToPrinter(cadena, sPRN);


Si la prueba la mando desde el ZebraDisaigner me hace lo mismo.

Ya no se que mas probar.
No quiero tocarle el frimware, ese sería el ultimo recurso.

Lo ultimo que leí es que desde el driver cambie de papel continuo a web. A la siesta pruebo eso a ver si puede que se solucione.

Saludos.

hev02120
26-02-2015, 15:32:41
Estoy imprimiendo vía EPL. Lo curioso es que la impresora no me respeta el posicionamiento de los tickets. Te cuento paso a paso a ver que pensas:

El contexto es: Windows 7 con dirvers de Zebra y conexión USB a mi notebook.
Estoy usando tickets continuos de alta calidad térmicos (sin ribbon) tipo entrada a recitales. Estos tickets están troquelados y tienen la famosa banda negra en la parte posterior.

Intento calibrar como he visto en videos y textos:

1) Prendo la impresora con el botón feed apretado.
2) Ni bien empieza a parpadear en rojo suelto y empieza a calibrar.
3) Saca como 7/8 tickets en blanco y por ultimo imprime la configuración y el botón feed queda en color naranja. Vuelvo a presionar y queda en verde.

Luego intento enviar una prueba y me la imprime, pero no paran de salir tickets hasta que se pone en rojo.

Los comandos que envío son: ( ejemplo del forista hgiacobone )

sPRN:= 'ZDesigner TLP 2844'; // nombre de la impresora que se obtiene de la variable Printer.-
L:=Chr(13)+chr(10);
cadena:= 'I8,A,001'+L; //charset
cadena:= cadena + 'Q480,24'+L; //alto en Dots (10mm=80Dots...1mm=8dots)
cadena:= cadena + 'q800' +L; //ancho en Dots 406
cadena:= cadena + 'rN' +L; //disable double buffer
cadena:= cadena + 'S3' +L;
cadena:= cadena + 'D7' +L;
cadena:= cadena + 'R0,0' +L; // agregado mio
cadena:= cadena + 'ZT' +L; //from Top
cadena:= cadena + 'WY' +L; //windows mode //agregado mio
cadena:= cadena + 'OD' +L; //Direct thermal //Od=Transfer ribbon
{ cadena:= cadena + 'R191,0' +L; //punto de referencia para datos centrados (si se utiliza, sobreescribe lo indicado por comando "q") }
cadena:= cadena + 'f100' +L; //cut position between labels
cadena:= cadena + 'N' +L; //clear image buffer
// cadena:= cadena + 'C' +L; //Cut inmmediate

{Ejemplo donde se recibe datos como:
A:='A52,49,0,4,1,1,N,"Impresión directa..."' +L;
B:='B46,170,0,E30,4,8,70,B,"3836556465461"' +L;
C:='A90,50,0,3,1,1,N,"Aquí hay una leyenda..."' +L;
D:='A90,70,0,3,1,1,N,'+'"Precio: '+FormatFloat('0.00', 10.25)+'"' +L;
E:='A50,20,1,1,1,1,N,'+'"Fecha: '+DateToStr(date)+'"' +L;
}

fin:= 'P1'+L;
// fin:= fin+'FE'+L;
cadena:= cadena +A+B+C+D+E + fin;

// cadena:= 'U'+L;

Result:= Write_RAW_StringToPrinter(cadena, sPRN);

// cadena:= 'C' +L; //Cut inmmediate
// Result:= Write_RAW_StringToPrinter(cadena, sPRN);


Si la prueba la mando desde el ZebraDisaigner me hace lo mismo.

Ya no se que mas probar.
No quiero tocarle el frimware, ese sería el ultimo recurso.

Lo ultimo que leí es que desde el driver cambie de papel continuo a web. A la siesta pruebo eso a ver si puede que se solucione.

Saludos.

newtron
26-02-2015, 17:37:48
A ver...

Según me comentas el primer problema que tienes es que tienes que calibrar la impresora según la etiqueta que tienes cargada. Como bien dices eso se hace apagando la impresora y encendiendola con el botón "feed" pulsado hasta que la luz de "status" parpadee y entonces sueltas el botón con lo que expulsará alguna etiqueta y se posicionará al principio de la primera etiqueta que encuentre y se quedará lista para imprimir. Eso lo explica en la página 40 del manual (https://www.zebra.com/content/dam/zebra/manuals/en-us/printer/tlp2844-ug-en.pdf).

Si estás haciendo eso y no te funciona correctamente es posible que el sensor que detecta en este caso la banda negra igual no está bien posicionado, revisa eso.

Por otro lado deberías de hacer una prueba con el ZebraDesigner y configurar una etiqueta e imprimirla desde ahí, si ahí no lo hace correctamente, desde tu programa seguro que tampoco. Tienes que tener en cuenta también que al diseñar la etiqueta hay un apartado en las propiedades de la impresora que se llama "Modo de seguimiento", igual tienes que activar en ese apartado la casilla de "Sensor de marca".

Ya te digo que lo primero es que la impresora almacene correctamente el tamaño de las etiquetas, si no, poca cosa podrás hacer.

Saludos