Trave o Método de Impressão da Zebra em 1 Comando SGD
TL;DR
- Um único SGD (
zpl.zpl_override) impede que^MT,^MMe^MNalterem a configuração da sua Zebra por engano. - Testamos aqui em impressoras Direct Thermal e Thermal Transfer: zero trocas indesejadas depois de travado.
- Leva 2 comandos e menos de 1 minuto por impressora — sem precisar abrir o menu físico do equipamento.
Nota Técnica: Os comandos SGD apresentados neste conteúdo têm fins educacionais e devem ser testados em uma impressora de ambiente controlado antes de aplicar em produção. O @CanalQb não se responsabiliza por danos, perdas de configuração ou bloqueios decorrentes do uso indevido.
Sua impressora Zebra pode trocar de Direct Thermal para Thermal Transfer sozinha — e ninguém percebe.
Isso acontece porque três comandos ZPL — ^MT, ^MM e ^MN — sobrescrevem a configuração local sempre que um layout, um driver do Windows ou um script os envia. A impressora obedece sem perguntar.
Existe um único SGD que resolve isso em duas linhas de comando — e a maioria erra justamente no valor que manda para ele. Vamos destrinchar o comando, os três parâmetros que ele protege e o erro mais comum na hora de aplicar.
O que é o zpl.zpl_override e por que ele existe?
zpl.zpl_override é um comando SGD que impede que comandos ZPL enviados junto com a etiqueta alterem configurações físicas já definidas na impressora Zebra — método de impressão, modo de manuseio de mídia e tipo de mídia. Ele existe porque, por padrão, a impressora sempre obedece ao que chega no arquivo ZPL, mesmo quando isso contradiz a configuração real do equipamento.
Na prática, esse comportamento padrão é o que causa o problema. Um layout desenvolvido para outra impressora, um driver desatualizado ou até um sistema de gestão que nunca foi ajustado para o parque de impressoras específico pode enviar ^MTT (força Thermal Transfer) para uma impressora que só tem Direct Thermal instalada — e a etiqueta sai em branco, porque não existe ribbon ali. O inverso também acontece: ^MTD chega numa Thermal Transfer, e o resultado é uma etiqueta ilegível com o ribbon rodando à toa.
Quais comandos ZPL esse SGD trava, exatamente?
O zpl.zpl_override não é um comando isolado — ele age como um interruptor mestre sobre três parâmetros específicos. Aqui no @CanalQb, validamos que esses três, e apenas esses três, deixam de responder a alterações via ZPL quando o override está ativo:
| Comando ZPL | SGD correspondente | O que controla |
|---|---|---|
^MT | ezpl.print_method | Método de impressão (Direct Thermal / Thermal Transfer) |
^MM | media.printmode | Modo de manuseio da mídia (Tear-off, Peel, Cutter, Rewind, Applicator, Delayed Cut) |
^MN | ezpl.media_type | Tipo de mídia (contínua, gap/notch, mark) |
Repare que esse controle é binário e global: ou o override está enabled e os três ficam travados, ou está disabled e os três voltam a aceitar alteração via ZPL. Não existe, hoje, um jeito de travar apenas um dos três parâmetros isoladamente por esse SGD.
Como configurar o método de impressão sem cair na pegadinha do valor errado?
O comando ezpl.print_method aceita exatamente dois valores: "direct thermal" e "thermal trans" — este último é o padrão de fábrica. Isso importa porque grande parte do conteúdo técnico que circula por aí usa valores como "direct" ou "thermal" soltos, e esses valores simplesmente não existem na especificação da Zebra.
E o pior: a impressora não recusa o comando quando o valor está errado. Ela aceita o setvar, não retorna erro nenhum, e simplesmente não aplica nada — o parâmetro continua com o valor anterior. Se o seu fluxo de configuração usa um campo de texto livre em vez de uma lista fixa de valores, esse erro de digitação passa completamente despercebido, e você só vai descobrir quando a etiqueta sair errada no chão de fábrica.
! U1 setvar "ezpl.print_method" "direct thermal" ! U1 setvar "ezpl.print_method" "thermal trans"
Mas o valor certo sozinho não resolve o problema original — ele só reconfigura a impressora uma vez. Sem o override ativo, o próximo layout com ^MT embutido desfaz essa configuração de novo.
Como travar o modo de manuseio da mídia (^MM)?
O SGD equivalente ao ^MM é o media.printmode. Os valores documentados oficialmente são TEAR OFF, PEEL e CUTTER — o comando ZPL original também prevê REWIND, APPLICATOR e DELAYED CUT, mas esses três só funcionam se a impressora tiver o hardware correspondente instalado (bobina de rewind ou placa aplicadora, por exemplo).
| Valor | Uso |
|---|---|
TEAR OFF | Etiqueta para no rasgador — modo mais comum em desktop |
PEEL | Requer sensor de peel — descola o liner automaticamente |
CUTTER | Requer módulo cortador instalado |
Como travar o tipo de mídia (^MN)?
O ezpl.media_type é o SGD correspondente ao ^MN, e controla se a impressora espera mídia contínua, mídia com gap físico entre etiquetas ou mídia com marca preta (black mark) para o sensor.
| Valor | Significado |
|---|---|
"continuous" | Mídia contínua, sem separação física entre etiquetas |
"gap/notch" | Etiquetas com espaço/entalhe entre elas — padrão de fábrica |
"mark" | Mídia com marca preta para o sensor identificar o início de cada etiqueta |
Se a sua operação usa sempre o mesmo tipo de rolo por impressora — o que é o cenário mais comum em ambiente corporativo — travar esse parâmetro junto evita que a impressora perca a calibração de gap sempre que alguém testa um layout de outra unidade.
Qual a sequência completa de comandos para cada cenário?
Na prática, você aplica essa configuração uma única vez por impressora — não a cada etiqueta impressa. É um parâmetro de nível de equipamento, não de layout. Veja a sequência recomendada para os dois cenários mais comuns:
# Impressora dedicada a Direct Thermal (sem ribbon)
! U1 setvar "ezpl.print_method" "direct thermal"
! U1 setvar "zpl.zpl_override" "enabled"
# Impressora dedicada a Thermal Transfer (com ribbon)
! U1 setvar "ezpl.print_method" "thermal trans"
! U1 setvar "zpl.zpl_override" "enabled"
A partir daqui, mesmo que o driver ou o layout enviado contenha ^MTD ou ^MTT, a impressora ignora silenciosamente o comando e mantém o método já configurado localmente. Você pode consultar mais comandos desse tipo na nossa base de comandos SGD para Zebra.
Como confirmar que a trava foi aplicada?
Nunca assuma que o setvar funcionou só porque a impressora não retornou erro — como você viu na seção sobre o método de impressão, um valor inválido também não gera erro. O jeito correto de confirmar é sempre consultar o valor atual com getvar antes de liberar o equipamento.
! U1 getvar "ezpl.print_method" ! U1 getvar "zpl.zpl_override"
Numa impressora Direct Thermal corretamente travada, o retorno esperado é:
"direct thermal" "enabled"
Numa Thermal Transfer, o primeiro valor deve retornar "thermal trans". Se qualquer um dos dois vier diferente disso, o comando não foi aplicado — volte à seção anterior e reenvie o setvar com o valor exato, sem variações.
Quais sintomas indicam que a impressora não está travada?
Se você gerencia mais de uma impressora Zebra, provavelmente já viu pelo menos um desses sintomas sem saber a causa raiz. Veja o diagnóstico rápido antes de abrir chamado de suporte ou trocar peça à toa:
| Sintoma | Causa provável | O que checar |
|---|---|---|
| Etiqueta sai em branco, papel passa normalmente | ^MT forçou Thermal Transfer numa impressora sem ribbon | getvar "ezpl.print_method" |
| Ribbon anda mas etiqueta não imprime nada legível | ^MT forçou Direct Thermal numa impressora Thermal Transfer | getvar "ezpl.print_method" |
| Corte ou rebobinagem para de funcionar depois de um layout específico | ^MM alterou o modo de manuseio da mídia | getvar "media.printmode" |
| Impressora não detecta mais o gap entre etiquetas | ^MN alterou o tipo de mídia | getvar "ezpl.media_type" |
Quais os erros mais comuns ao aplicar essa trava?
Testamos essa configuração em mais de um modelo antes de fechar esse conteúdo, e os erros que mais aparecem não estão no comando em si — estão em como ele é aplicado no dia a dia. Fica o checklist:
- Usar
"direct"ou"thermal"em vez de"direct thermal"/"thermal trans"— a impressora ignora silenciosamente. - Ativar o
zpl.zpl_overrideantes de configurar o método correto — a impressora trava o valor errado que já estava lá. - Aplicar em uma impressora do parque e esquecer as demais — cada equipamento precisa da própria configuração local.
- Confiar que o comando funcionou sem rodar o
getvarde confirmação depois. - Sempre configurar o valor correto primeiro, depois ativar o override, depois confirmar com
getvar.
Isso funciona em quais modelos de impressora Zebra?
Os quatro SGDs apresentados aqui — zpl.zpl_override, ezpl.print_method, media.printmode e ezpl.media_type — são padrão na linha Link-OS da Zebra, o que cobre a grande maioria do parque instalado em ambiente corporativo: ZT230, ZT410, ZT411, ZD421, ZD621 e modelos equivalentes. A sintaxe SGD é padronizada entre esses modelos, então não há necessidade de comando diferente por impressora — a única variável real é se o equipamento é fisicamente Direct Thermal, Thermal Transfer ou híbrido (dual), e se o hardware opcional, como peeler, cutter ou rewind, está instalado. Se você administra um parque misto, vale revisar também o nosso conteúdo sobre automação de configuração para múltiplas impressoras Zebra e sobre comandos ZPL essenciais.
Perguntas Frequentes
O zpl.zpl_override funciona em impressoras EPL, ou só ZPL?
Preciso reenviar o comando toda vez que eu imprimir uma etiqueta?
Como eu reverto e volto a permitir alteração via ZPL?
Por que minha impressora aceitou o comando errado sem dar erro?
Dá para travar só o método de impressão e deixar o tipo de mídia livre?
Fontes e Referências
Gerencia mais de uma impressora Zebra? Veja mais automações e comandos ZPL/SGD no @CanalQb e no canal @CanalQb no YouTube.