O arquivo da transportadora é ZPL mesmo? Como saber em dez segundos

Nem todo arquivo de etiqueta é ZPL. Pode ser EPL, pode ser um PDF com a extensão trocada, pode ser um JSON com o ZPL escondido dentro. Cada um se reconhece pela primeira linha.

O sintoma

Você envia o arquivo, e a resposta é "nenhuma etiqueta encontrada no arquivo". Não é o conversor sendo exigente: ele procurou um bloco ^XA … ^XZ e não achou nenhum. O arquivo pode estar perfeito, e não ser ZPL.

Isso é mais comum do que parece, porque "arquivo de etiqueta" virou nome de quatro coisas diferentes, e a extensão não ajuda: .txt, .prn, .lbl e .zpl são usadas para todas elas.

Abra num editor de texto e olhe a primeira linha

Bloco de Notas serve, VS Code serve, qualquer um que mostre o conteúdo cru. A primeira linha entrega o formato:

Começa comO que é
^XAZPL. É o que o conversor espera.
N ou q ou Q seguido de númerosEPL, a linguagem anterior da Zebra.
%PDFJá é um PDF, com a extensão trocada. Renomeie e abra.
PK e caracteres ilegíveisÉ um ZIP. Descompacte e olhe o que tem dentro.
{ ou <?xmlÉ a resposta de uma API, com a etiqueta em algum campo.

EPL: a linguagem que parece ZPL e não é

Esta é uma etiqueta EPL completa:

N
A50,50,0,3,1,1,N,"Pedido 1234"
P1

Sem acento circunflexo em lugar nenhum, comandos de uma letra, texto entre aspas. É a linguagem que a Eltron usava antes de a Zebra comprar a empresa, e continua viva em impressoras de modelo mais antigo.

Muita impressora Zebra entende as duas linguagens e troca sozinha, e é por isso que o arquivo "sempre funcionou" na impressora e não converte aqui. O conversor faz ZPL, e um arquivo EPL devolve exatamente o erro de "nenhuma etiqueta encontrada". Testamos.

Não há conversão automática de um para o outro: são linguagens diferentes, com modelos de posicionamento diferentes. O caminho é pedir a etiqueta em ZPL a quem emite, e quase sempre é só uma opção no sistema de origem.

ZPL escondido dentro de um JSON

Se a etiqueta veio de uma API de transportadora ou de marketplace, é normal o arquivo ser um JSON com o ZPL num campo, às vezes codificado em base64 para atravessar a rede sem se quebrar.

O sinal é o arquivo começar com { e ter um campo com nome tipo "label", "content" ou "data". Se o valor for legível e começar com ^XA, basta copiar aquele trecho para um arquivo novo. Se for um bloco longo de letras e números sem sentido, é base64, e precisa ser decodificado antes.

Nesse caso vale conferir com quem integrou o sistema: quase toda API tem um parâmetro de formato, e pedir a etiqueta já em ZPL puro evita a etapa.

Quando é ZPL e mesmo assim dá erro

Se a primeira linha tem ^XA e o erro continua, sobram duas possibilidades. A primeira é não haver ^XZ fechando a etiqueta, e o guia sobre por que uma etiqueta não sai no PDF cobre esse caso e o que ele faz de pior, que é sumir em silêncio quando há outras etiquetas no arquivo.

A segunda é lixo antes do primeiro ^XA, o que acontece quando alguém copia de um terminal ou de um e-mail. Tudo que está fora de um par ^XA … ^XZ é descartado, então esse caso costuma resolver sozinho, mas vale olhar se o primeiro ^XA está mesmo inteiro.

← Todos os guias