Comando no comprendido por Zebra iMZ320

Estoy tratando de imprimir una etiqueta de una aplicación de Android a una impresora Zebra (iMZ 320), pero parece no ser la comprensión de mi línea de comandos.

Cuando intento este código de ejemplo, la impresora imprime todos los comandos al papel cuando los envío a la impresora:

zebraPrinterConnection.write("^XA^FO50,50^ADN,36,20^FDHELLO^FS^XZ".getBytes()); 

He leído el tutorial de programación de ZPL del sitio web oficial de Zebra, pero no puedo averiguar cómo hacer que mi impresora funcione correctamente con los comandos de ZPL.

El Zebra iMZ puede enviarse en modo de impresión en línea. Esto significa que no analizará e interpretará los comandos ZPL que ha proporcionado, sino que los imprimirá. Deberá configurar la impresora en modo ZPL en lugar del modo de impresión en línea. El siguiente comando debe hacerlo:

! U1 setvar "device.languages" "zpl"

Nota: En algunos casos puede que tenga que establecer el idioma en "hybrid_xml_zpl" en lugar de "zpl"

Observe que debe incluir un carácter de nueva línea (o retorno de carro) al final de este comando. Puede utilizar las utilidades de configuración de Zebra para enviar comandos directamente a la impresora a través de su perspectiva de comunicación, disponible pulsando el botón "comunicación" en la pantalla principal.

Utilidades de configuración de Zebra: http://www.zebra.com/us/en/products-services/software/manage-software/zebra-setup-utility.html

ZPL Manual página 705 (comando de detalles como el listado anteriormente): https://support.zebra.com/cpws/docs/zpl/zpl_manual.pdf

¡Si usted quiere imprimir el texto simple usted puede enviar datos "crudos" normales vía el zócalo de BT a la impresora de la cebra y lo imprimirá! No es necesario utilizar la biblioteca de impresión Zebra.

Simplemente ejecute este código en tarea asíncrona para imprimir dos líneas de texto sin formato:

 protected Object doInBackground(Object... params) { //bt address String bt_printer = "00:22:58:31:85:68"; String print_this = "Hello Zebra!\rThis is second line"; //vars BluetoothSocket socket = null; BufferedReader in = null; BufferedWriter out = null; //device from address BluetoothDevice hxm = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(bt_printer); UUID applicationUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); try { //create & connect to BT socket socket = hxm.createRfcommSocketToServiceRecord(applicationUUID); socket.connect(); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); out.write(print_this); out.flush(); //some waiting Thread.sleep(3000); //in - nothing, just wait to close connection in.ready(); in.skip(0); //close all in.close(); socket.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.