Por qué tu impresora Zebra imprime texto ilegible
Si tu Zebra imprime los comandos ZPL como texto (^XA, ^FO… en la etiqueta), saca caracteres aleatorios o muestra las letras acentuadas mal, los datos de la etiqueta suelen estar bien: la impresora está en el modo equivocado, con el lenguaje incorrecto, con el driver equivocado o usando el code page erróneo.

Causas más comunes
La impresora está en modo diagnóstico (dump)
En modo de diagnóstico de comunicaciones la impresora imprime cada comando que recibe como texto literal en vez de ejecutarlo, así que ves ^XA, ^FO y tus datos impresos. Hay que desactivar este modo.
El lenguaje de la impresora está mal
Si la impresora está en modo EPL o line-print y recibe ZPL (o al revés), no puede interpretar los comandos y los imprime como texto o como galimatías.
El driver equivocado envía los datos
Un driver de texto genérico, o un driver gráfico que re-renderiza el trabajo, puede enviar datos que la impresora no sabe interpretar. El ZPL debe llegar como ZPL en bruto: con el driver ZDesigner ZPL o por un puerto RAW.
Desajuste de code page / juego de caracteres
Cuando los caracteres acentuados o no ASCII salen mal, el juego de caracteres internacional de la impresora no coincide con la codificación de los datos. En ZPL se selecciona con ^CI.
Llegan datos o protocolo equivocados a la impresora
Enviar un PDF, una imagen o un flujo PostScript, o datos parciales/corruptos, a una impresora ZPL produce caracteres aleatorios. La impresora solo entiende su propio lenguaje de comandos.
Solución paso a paso
- Desactiva el modo diagnóstico/dump. Envía ~JE, o cancela el modo Diagnóstico desde el panel frontal (o apaga y enciende la impresora). Después debería ejecutar los comandos en vez de imprimirlos como texto.
- Ajusta el lenguaje de la impresora a ZPL. Usa el ajuste Language del panel frontal, o el SGD device.languages, para que interprete ZPL y no EPL ni line print.
- Usa el driver correcto: instala el driver ZDesigner ZPL de tu modelo, o envía ZPL en bruto directamente a la impresora (por ejemplo al puerto TCP 9100). Evita drivers de texto o gráficos genéricos que reformatean el trabajo.
- Para las letras acentuadas incorrectas, ajusta el code page con ^CI según tus datos —^CI28 para UTF-8 es lo habitual— y asegúrate de guardar el ZPL en esa misma codificación.
- Confirma que envías ZPL, no un PDF, imagen o EPL, y prueba con el ZPL de ejemplo de abajo (fija UTF-8 con ^CI28). Si imprime limpio, el problema era el trabajo anterior, no la impresora.
Etiqueta de prueba de texto UTF-8
Esta etiqueta fija el code page UTF-8 (^CI28) e imprime caracteres acentuados. Si se ven correctos aquí y en la impresora, tu codificación y tu lenguaje están bien configurados.
^XA
^CI28
^FO40,40^A0N,40,40^FDZPL OK áéíóú çñü^FS
^XZPreguntas frecuentes
¿Por qué mi impresora Zebra imprime el código ZPL como texto?
La impresora está en modo de diagnóstico de comunicaciones (dump), que imprime los comandos literalmente en vez de ejecutarlos, o está en el lenguaje equivocado. Envía ~JE (o desactiva el modo Diagnóstico) y ajusta el lenguaje a ZPL.
¿Por qué mi impresora Zebra imprime caracteres aleatorios?
Normalmente un desajuste de driver o protocolo: un driver genérico/de texto, o un flujo no ZPL (PDF, imagen, EPL) llegando a una impresora ZPL. Usa el driver ZDesigner ZPL o envía ZPL en bruto, y confirma que el lenguaje es ZPL.
¿Por qué salen mal los caracteres acentuados o especiales?
El code page de la impresora no coincide con la codificación de tus datos. Añade ^CI a tu ZPL —^CI28 selecciona UTF-8— y guarda el ZPL en esa misma codificación.
Sobre el autor
Eduard Diaz
Eduard Diaz es técnico IT (desarrollo) en S-IE, partner oficial de Zebra con más de 20 años ofreciendo servicios de identificación y etiquetado. Desarrolla y mantiene EditorZPL para facilitar el trabajo con ZPL e impresoras de etiquetas Zebra.
s-ie.cat