Problemas al Imprimir Comandos ZPL II dsde Java
Buenos días, soy nuevo en Java y necesito su ayuda, actualmente en mi trabajo me solicitaron desarrollar una pequeña aplicacion que permita imprimir etiquetas de código de barra en una impresora Zebra ZM4plus bajo plataforma linux, estoy usando debian; estoy siguiendo i¡¡varios tutoriales en los que me indican que desde java puedo enviar a imprimir comandos ZPL II que son los que interpreta la impresora, pero cuando envío a imprimir no reconoce los comandos y los imprime como una cadena de texto. Me gustaria sver si hace falta alguna libreria para poder hacer esto? este es mi codigo fuente java, he probado con varios ejemplos similares y nada.
- Inicie sesión o regístrese para enviar comentarios
^F
Sospecho que estás malinterpretando el símbolo
que viene en los manuales. Seguramente significa CTRL-F. El "gorrito" (caret en inglés) generalmente se usa para denotar un caracter de control; ^F es ctrl-F, ^X es ctrl-X, etc.
^A a ^Z con los caracteres ASCII 1 al 26. Los puedes representar dentro de una cadena en Java con el escape de Unicode, recuerda que es en hexadecimal, así que va de \u0001 a \u001a. Por ejemplo tu
debería ser en realidad
.
Zebra designer.
Intenta armar tu etiqueta con zebra designer y al guardar tu diseño tiene una opción en la que escoges el formato como lo deseas guardar. y aparece una opcion ZPL, Lo genera en un .txt me parece. Lo abres y copias el conjunto de caracteres y lo pegas en el String a imprimir. Suponiendo que lo que estuviera mal fueran los caracteres que usas.
Saludos.
Muchas gracias por responder,
Muchas gracias por responder, voy a probar lo que me indicas.
Solucionado desde Otra Perspectiva
Buenas tardes compañeros, gracias a ezamudio y a 5uRFi por su pronta respuesta.
les comento para beneficio de la comunidad como solucione mi problema:
La Impresora esta instalada en un equipo con debian wheezy, el cual trae como servidor de impresoras CUPS; investigando un poco para ver lo que sucedía descubrí que este servidor o servicio de impresión convierte los caracteres de escape en un stream antes de imprimirlo, por lo tanto cuando yo le pasaba los comandos a la impresora, cups los transformaba en una especie de imagen no permitiendo que la misma los interpretara.
la solución mas simple por lo menos para mi caso ya que lo que voy a desarrollar apremia fue ejecutar el comando desde la consola de linux indicándole que no transforme el texto antes de enviar a imprimir con el parametro -o raw ejemplo:
directo desde la linea de comando de linux esta es una de las tantas maneras de hacerlo:
Este es el código, implementado desde Java espero que a alguien le sea útil.
optimización
Puedes saltarte el echo, y solamente invocar el comando lp, obteniendo su standardInput para pasarle ahí la cadena. Es un poquito más limpio.
Hola Amigos, podrian
Hola Amigos, podrian compartir un poco mas de codigo y de su experiencia?
Tengo una impresora TPL2844.
Tengo windows 8
La impresora se llama: ZDesigner TLP 2844
probe el codigo: