Caracteres de escape para la impresora

Post Reply
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Caracteres de escape para la impresora

Post by softruz »

Muy buenas, ¿alguien sabe como puedo mandar el caracter de escape:
"ESC C 42" a la impresora STAR DP8340S?
me dice que le tengo que mandar "ESC C n" (donde n es el número de líneas) y lo que es lo mismo en hexadecimal: "(1B)H (43)H n"

decirme como puede mandarlo gracias.
Gracias.

Un Saludo.
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

prueba con: CHR(27) + "C5"

donde 5 es el numero de lineas
Pedro Gonzalez
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Tal cual te comentan en el post anterior, pero ten en cuenta que n (nº de lineas) es el valor ascii del caracter que le pasas. P.e. 48 lineas seria

Code: Select all

Chr(27)+"C0" 
o si mas claro

Code: Select all

Chr(27)+"C"+Chr(48) 
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

No funciona

Post by softruz »

Muy buenas, he probado de todo y no funciona sigue imprimiendo 33 líneas de dicha impresora no que se hacer, si alguien sabe como mandar el código de escape o configurar la STAR DP8340S, decirme algo.

Gracias.

Un Saludo.
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Un cliente mio tiene Star Dp8340S y el código que antes te he puesto funciona para el cambio de lineas.

Tu quieres poner la impresora a 42 lineas, entonces seria

Code: Select all

Chr(27)+"C*"
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Post by softruz »

Me prodrías decir el código para enviar el codigo de escape, mira yo creo un fichero y en la primera línea pongo:

WriteByte( cConexion,Chr(27)+"C*")

es decir, mi codigo es:

local cConexion := CreateFile( "COM8:",GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL )
if (cConexion==-1)
MsgStop('No hay conexion con la impresora',vTitulo)
else
WriteByte( cConexion,Chr(27)+"C*")
for n = 1 to Len( cTexto )
WriteByte( cConexion, Asc( SubStr( cTexto, n, 1 ) ) )
next
CloseHandle( cConexion )

¿Está bien?¿Debería funcionar?
Gracias

Un Saludo.
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Creo que no es correcto, en principio entiendo que writebyte envia byte a byte al puerto de comunicaciones.

Prueba de la siguiente manera.

Code: Select all

//WriteByte( cConexion,Chr(27)+"C*") 
cTexto:=Chr(27)+"C*"+cTexto
for n = 1 to Len( cTexto ) 
   WriteByte( cConexion, Asc( SubStr( cTexto, n, 1 ) ) ) 
next 
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

No me funciona

Post by softruz »

Muy buenas, no se que hacer la impresora no funciona, he llamado al servicio técnico y dicen que debe ser de programación y yo no hago nada más que el código anterior, decirme que puedo hacer, es decir, si hay otra forma de comunicarse con la impresora, otra forma de imprimir, no se algo para que esto funcione.

También he probado con otra impresora nueva para ver si es que estuviese rota, y también pasa lo mismo.

Bueno, gracias de antemano.

Un Saludo.
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Pues no se que decirte, el codigo anteriro a mi me funciona. Pro probar, pero es lo mismo.

Code: Select all

WriteByte(cConexion,27)
WriteByte(cConexion,Asc('C')
WriteByte(cConexion,48)  //Lineas 
for n = 1 to Len( cTexto ) 
   WriteByte( cConexion, Asc( SubStr( cTexto, n, 1 ) ) ) 
next 
Puedes probar de imprimir con cable directo, entiendo que lo haces via Bluetooth.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

No se por que no

Post by softruz »

¿Sabes algún caracter de escape que tengamos que complementar a ese? es decir, lo mismo tengo que reiniciar la impresora, limpiar buffer, no se algo que complemente que haga que funcione de una vez.

Gracias.

Un Saludo.
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Post by softruz »

Lo hemos probado también con el cable directo y no funciona, es de la impresora que no coje el caracter de escape
softruz
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Muchas gracias

Post by softruz »

Muy buenas, ya ha solucionado el problema de la impresión muchas gracias por todo.
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Por curiosidad, cual ha sido la solución.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Post Reply