Por que sua impressora Zebra imprime texto ilegível
Se sua Zebra imprime os comandos ZPL como texto (^XA, ^FO… na etiqueta), solta caracteres aleatórios ou mostra as letras acentuadas erradas, os dados da etiqueta geralmente estão certos — a impressora está no modo errado, no idioma errado, com o driver errado, ou usando o code page errado.

Causas mais comuns
A impressora está em modo diagnóstico (dump)
No modo de diagnóstico de comunicação a impressora imprime cada comando recebido como texto literal em vez de executá-lo, então você vê ^XA, ^FO e seus dados impressos. Esse modo precisa ser desativado.
O idioma da impressora está errado
Se a impressora está em modo EPL ou line-print e recebe ZPL (ou vice-versa), não consegue interpretar os comandos e os imprime como texto ou caracteres estranhos.
O driver errado envia os dados
Um driver de texto genérico, ou um driver gráfico que re-renderiza o trabalho, pode enviar dados que a impressora não sabe analisar. O ZPL precisa chegar como ZPL puro — pelo driver ZDesigner ZPL ou por uma porta RAW.
Descompasso de code page / conjunto de caracteres
Quando caracteres acentuados ou não ASCII saem errados, o conjunto de caracteres internacional da impressora não bate com a codificação dos dados. Em ZPL isso se seleciona com ^CI.
Dados ou protocolo errados chegam à impressora
Enviar um PDF, imagem ou fluxo PostScript, ou dados parciais/corrompidos, para uma impressora ZPL produz caracteres aleatórios. A impressora só entende a própria linguagem de comandos.
Solução passo a passo
- Desative o modo diagnóstico/dump. Envie ~JE, ou cancele o modo Diagnóstico pelo painel frontal (ou desligue e ligue a impressora). Depois ela deve executar os comandos em vez de imprimi-los como texto.
- Ajuste o idioma da impressora para ZPL. Use a configuração Language do painel frontal, ou o SGD device.languages, para ela interpretar ZPL e não EPL ou line-print.
- Use o driver correto: instale o driver ZDesigner ZPL do seu modelo, ou envie ZPL puro direto para a impressora (por exemplo à porta TCP 9100). Evite drivers de texto ou gráficos genéricos que reformatam o trabalho.
- Para letras acentuadas erradas, ajuste o code page com ^CI conforme seus dados — ^CI28 para UTF-8 é o usual — e salve o ZPL nessa mesma codificação.
- Confirme que está enviando ZPL, não um PDF, imagem ou EPL, e teste com o ZPL de exemplo abaixo (define UTF-8 com ^CI28). Se imprimir limpo, o problema era o trabalho anterior, não a impressora.
Etiqueta de teste de texto UTF-8
Esta etiqueta define o code page UTF-8 (^CI28) e imprime caracteres acentuados. Se aparecerem corretos aqui e na impressora, sua codificação e seu idioma estão bem configurados.
^XA
^CI28
^FO40,40^A0N,40,40^FDZPL OK áéíóú çñü^FS
^XZPerguntas frequentes
Por que minha impressora Zebra imprime o código ZPL como texto?
A impressora está em modo de diagnóstico de comunicação (dump), que imprime os comandos literalmente em vez de executá-los, ou está no idioma errado. Envie ~JE (ou desative o modo Diagnóstico) e ajuste o idioma para ZPL.
Por que minha impressora Zebra imprime caracteres aleatórios?
Geralmente um descompasso de driver ou protocolo: um driver genérico/de texto, ou um fluxo não ZPL (PDF, imagem, EPL) chegando a uma impressora ZPL. Use o driver ZDesigner ZPL ou envie ZPL puro, e confirme o idioma ZPL.
Por que os caracteres acentuados ou especiais saem errados?
O code page da impressora não bate com a codificação dos seus dados. Adicione ^CI ao seu ZPL — ^CI28 seleciona UTF-8 — e salve o ZPL na mesma codificação.
Sobre o autor
Eduard Diaz
Eduard Diaz é técnico de TI (desenvolvimento) na S-IE, parceira oficial da Zebra com mais de 20 anos oferecendo serviços de identificação e etiquetagem. Ele desenvolve e mantém o EditorZPL para facilitar o trabalho com ZPL e impressoras de etiquetas Zebra.
s-ie.cat