Page 1 of 1
Caracteres de escape para la impresora
Posted: Fri Mar 02, 2007 12:21 pm
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.
Posted: Fri Mar 02, 2007 12:51 pm
by pymsoft
prueba con: CHR(27) + "C5"
donde 5 es el numero de lineas
Posted: Fri Mar 02, 2007 2:37 pm
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
o si mas claro
No funciona
Posted: Fri Mar 02, 2007 5:20 pm
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.
Posted: Fri Mar 02, 2007 5:30 pm
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
Posted: Fri Mar 02, 2007 5:44 pm
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.
Posted: Fri Mar 02, 2007 7:42 pm
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
No me funciona
Posted: Mon Mar 05, 2007 8:29 am
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.
Posted: Mon Mar 05, 2007 9:04 am
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.
No se por que no
Posted: Mon Mar 05, 2007 9:38 am
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.
Posted: Mon Mar 05, 2007 9:53 am
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
Muchas gracias
Posted: Tue Mar 06, 2007 11:32 am
by softruz
Muy buenas, ya ha solucionado el problema de la impresión muchas gracias por todo.
Posted: Tue Mar 06, 2007 12:00 pm
by Biel EA6DD
Por curiosidad, cual ha sido la solución.