Lançamento

30% no primeiro mês do Pro30% no 1º mêsR$ 29,98 → R$ 20,99

Ver planos
ZPL em PDF

Referência · ZPL

Comandos ZPL: o que cada um faz

ZPL é uma linguagem pequena com uma cara intimidadora: duas letras depois de um acento circunflexo, argumentos sem nome que valem pela posição, e um manual de várias centenas de páginas. Na prática, uma etiqueta de envio usa cerca de vinte comandos — e depois que você consegue ler esses vinte, o resto do arquivo para de ser um muro de símbolos. Cada comando abaixo vem com uma etiqueta completa, não um pedaço, que você pode colar no conversor desta mesma página e ver renderizar.

Conferido em 31 de agosto de 2026

Como ler uma linha de ZPL

Uma etiqueta começa em ^XA e termina em ^XZ. No meio, toda instrução começa com um acento circunflexo e duas letras, seguidas de argumentos separados por vírgula em ordem fixa — não existe nome de argumento, então a posição é tudo, e uma vírgula com nada entre ela e a próxima significa “mantenha o padrão”.

Pegue ^FO50,120^A0N,40,40^FDACME Ltda^FS. Isso é: coloque o próximo campo a 50 pontos da esquerda e 120 do topo; use a fonte 0, sem rotação, com 40 pontos de altura e 40 de largura; o conteúdo é “ACME Ltda”; fim do campo. Quatro comandos, uma linha da etiqueta.

Dois detalhes causam a maior parte da confusão. Tudo é medido em pontos da impressora e não em milímetros, então o mesmo arquivo tem tamanho físico diferente a 203 e a 300 dpi — que é o motivo de o seletor de densidade importar tanto. E o ^FS não é enfeite opcional: sem ele, o comando seguinte é lido como mais dados do campo anterior, que é por que uma etiqueta quebrada quase sempre sai como uma única linha de texto emendada.

Por que todo comando aqui vem com um exemplo

Porque a referência de um renderizador deveria ser verificável contra esse renderizador. Cada exemplo abaixo passa pela engine deste site dentro de um teste, e o resultado é comparado com a coluna de suporte — então um comando descrito como renderizado que a engine ignorasse em silêncio quebraria o nosso build em vez de queimar a sua tarde.

É também por isso que os comandos que não implementamos estão listados em vez de omitidos. Uma tabela de suporte que só mostra os acertos não diz nada sobre a etiqueta que está na sua frente; saber que o ^BZ vai avisar e pular é justamente a metade útil.

Todo exemplo desta página é uma etiqueta completa. Eles não são ilustrações: um teste renderiza cada um pela mesma engine que roda neste site e confere o resultado contra a coluna de suporte — então um comando marcado como “Renderiza” que a engine ignorasse quebraria o build em vez de enganar você aqui.

Estrutura da etiqueta

Onde uma etiqueta começa e termina, e como um arquivo só acaba guardando cem delas.

  • ^XA

    Início do formato

    Renderiza

    Abre uma etiqueta. Tudo até o ^XZ correspondente descreve uma única etiqueta impressa, então um arquivo com cinquenta blocos ^XA são cinquenta etiquetas — que é exatamente a cara de um dia de pedidos baixado de uma vez no marketplace.

    ^XA^FO50,50^A0N,40,40^FDPrimeira etiqueta^FS^XZ
  • ^XZ

    Fim do formato

    Renderiza

    Fecha a etiqueta e manda imprimir. Um arquivo que perdeu o ^XZ final no meio do caminho ainda renderiza aqui.

    ^XA^FO50,50^A0N,40,40^FDÚltima etiqueta^FS^XZ
  • ^FS

    Separador de campo

    Renderiza

    Encerra o campo atual. Esquecer o ^FS faz o comando seguinte ser lido como continuação dos dados do campo anterior — é de longe o motivo mais comum de uma etiqueta sair como uma única linha de texto emendada.

    ^XA^FO50,50^A0N,40,40^FDNome^FS^FO50,110^A0N,40,40^FDEndereço^FS^XZ
  • ^FX

    Comentário

    Renderiza

    Marca um comentário, que não é impresso. Cuidado com uma armadilha: o comentário termina no próximo acento circunflexo, então escrever o nome de um comando dentro de um ^FX cria um comando de verdade.

    ^XA^FXCabecalho do pedido^FS^FO50,50^A0N,40,40^FDACME Ltda^FS^XZ
  • ^DF

    Salvar formato

    Renderiza

    Guarda o bloco seguinte como um modelo na memória da impressora. É metade do par que quase todo arquivo de transportadora usa: o desenho da etiqueta sobe uma vez só, e cada pedido manda apenas os dados.

    ^XA^DFR:TPL.ZPL^FS^FO50,50^A0N,40,40^FN1^FS^XZ^XA^XFR:TPL.ZPL^FS^FN1^FDACME Ltda^FS^XZ
  • ^XF

    Chamar formato

    Renderiza

    Carrega um modelo salvo por ^DF e preenche os campos numerados dele. É por isso que um .txt de transportadora com cem etiquetas costuma ter o layout escrito uma vez e depois só listas de valores.

    ^XA^DFR:TPL.ZPL^FS^FO50,50^A0N,40,40^FN1^FS^XZ^XA^XFR:TPL.ZPL^FS^FN1^FDPedido 4471^FS^XZ
  • ^FN

    Número do campo

    Renderiza

    Numera um campo dentro de um ^DF para que o ^XF consiga preenchê-lo depois. No modelo, o ^FN marca o lugar vazio; na chamada, ^FN7 seguido de ^FD entrega o conteúdo daquele lugar.

    ^XA^DFR:TPL.ZPL^FS^FO50,50^A0N,40,40^FN7^FS^XZ^XA^XFR:TPL.ZPL^FS^FN7^FDSão Paulo^FS^XZ

Configuração da etiqueta

Que tamanho a etiqueta tem, onde fica a origem dela e quantas cópias saem.

  • ^PW

    Largura de impressão

    Renderiza

    Define a largura da etiqueta em pontos (dots), nunca em milímetros. A 203 dpi (8 dpmm) uma etiqueta de 10 cm tem 812 pontos; a mesma etiqueta a 300 dpi tem 1200 — é por isso que escolher a densidade errada corta a arte pela metade.

    ^XA^PW812^LL1218^FO50,50^A0N,40,40^FD10 x 15 cm a 203 dpi^FS^XZ
  • ^LL

    Comprimento da etiqueta

    Renderiza

    Define a altura da etiqueta em pontos. Sem ^PW e sem ^LL, o conversor calcula o tamanho pelo que foi desenhado em vez de cortar o que não coube.

    ^XA^PW812^LL1218^FO50,50^A0N,40,40^FDQuinze centímetros^FS^XZ
  • ^LH

    Origem da etiqueta

    Renderiza

    Move o ponto 0,0 de toda a etiqueta. Serve para corrigir de uma vez uma arte que saiu deslocada na impressora, sem ter que mexer em cada ^FO do arquivo.

    ^XA^LH30,30^FO50,50^A0N,40,40^FDOrigem deslocada^FS^XZ
  • ^LS

    Deslocamento horizontal

    Renderiza

    Empurra a etiqueta inteira para o lado. Diferente do ^LH, é aplicado depois do posicionamento, e costuma aparecer em arquivos gerados por sistemas que ajustam a margem no final.

    ^XA^LS20^FO50,50^A0N,40,40^FDDeslocada à direita^FS^XZ
  • ^LT

    Deslocamento vertical

    Renderiza

    Desce ou sobe a etiqueta inteira, em pontos, para alinhar com a picotagem do rolo.

    ^XA^LT10^FO50,50^A0N,40,40^FDDescida de dez pontos^FS^XZ
  • ^PQ

    Quantidade de cópias

    Renderiza

    Quantas cópias da etiqueta imprimir. Um ^PQ3 vira três páginas no PDF daqui, do mesmo jeito que viraria três etiquetas no rolo.

    ^XA^PQ3^FO50,50^A0N,40,40^FDTrês cópias^FS^XZ
  • ^PO

    Orientação de impressão

    Renderiza

    Gira a etiqueta inteira em 180 graus com ^POI. Usado quando o rolo entra na impressora ao contrário e é mais fácil virar a arte do que a mídia.

    ^XA^POI^FO50,50^A0N,40,40^FDDe cabeça para baixo^FS^XZ
  • ^LR

    Impressão reversa da etiqueta

    Renderiza

    Inverte preto e branco em todos os campos seguintes, e não só em um. Sobre um retângulo preenchido, o texto sai branco.

    ^XA^LRY^FO50,50^GB300,80,80^FS^FO70,70^A0N,40,40^FDINVERTIDO^FS^XZ
  • ^CI

    Codificação de caracteres

    Renderiza

    Escolhe a tabela de caracteres. ^CI28 seleciona UTF-8 e é o que faz acento, til e cedilha aparecerem certos — é a causa praticamente única de “Endereço” sair impresso como “Endereço”.

    ^XA^CI28^FO50,50^A0N,40,40^FDEndereço, João, Conceição^FS^XZ

Posição e orientação

Onde o próximo campo é desenhado, virado para que lado e em que cor de tinta.

  • ^FO

    Origem do campo

    Renderiza

    Define onde o próximo campo começa, contando em pontos a partir da esquerda e do topo. ^FO120,60 é 120 pontos para a direita e 60 para baixo. É o comando mais repetido de qualquer etiqueta: cada bloco de texto, cada código de barras e cada retângulo começa com um.

    ^XA^FO120,60^A0N,40,40^FDCanto superior esquerdo^FS^XZ
  • ^FT

    Posição pela linha de base

    Renderiza

    Também posiciona o campo, mas mede pela linha de base do texto em vez do canto superior da célula. Uma sequência de ^FT alinha as letras entre si, que é o que você quer quando mistura tamanhos de fonte na mesma linha.

    ^XA^FT120,120^A0N,40,40^FDSobre a linha de base^FS^XZ
  • ^FW

    Rotação padrão do campo

    Renderiza

    Define a rotação que os campos seguintes assumem sem precisar repeti-la em cada ^A. ^FWR gira 90 graus, que é como se escreve na lateral de uma etiqueta estreita.

    ^XA^FWR^FO200,60^A0N,40,40^FDGirado^FS^XZ
  • ^FR

    Impressão reversa do campo

    Renderiza

    Inverte apenas o campo seguinte: em cima de um retângulo preto, o texto sai branco. É assim que se faz a tarja com o nome da transportadora ou o selo de serviço no topo da etiqueta.

    ^XA^FO40,40^GB320,90,90^FS^FO60,60^FR^A0N,40,40^FDBRANCO NO PRETO^FS^XZ

Texto e fontes

Escolher a fonte, o tamanho e como o texto quebra em várias linhas.

  • ^A

    Fonte do campo

    Renderiza

    Escolhe fonte, rotação e tamanho do campo. Em ^A0N,40,40 são: fonte 0, N de sem rotação, 40 pontos de altura e 40 de largura. Omitir a largura faz ela assumir o valor da altura, e não um valor mais estreito.

    ^XA^FO50,50^A0N,48,48^FDFonte escalável 0^FS^XZ
  • ^CF

    Fonte padrão

    Renderiza

    Define a fonte e o tamanho que todos os campos seguintes herdam, para não repetir ^A em cada linha da etiqueta.

    ^XA^CF0,40^FO50,50^FDHerda o padrão^FS^FO50,110^FDEste também^FS^XZ
  • ^FD

    Dados do campo

    Renderiza

    Carrega o conteúdo em si — o texto que vai ser impresso, ou o payload do código de barras. Tudo entre o ^FD e o ^FS é dado, espaços inclusive, e é por isso que um ^FS esquecido engole o comando seguinte como se fosse texto.

    ^XA^FO50,50^A0N,40,40^FDAv. Exemplo, 1000^FS^XZ
  • ^FV

    Campo variável

    Renderiza

    Igual ao ^FD, mas o conteúdo é apagado depois de imprimir. Aparece em modelos guardados na impressora, onde a parte fixa fica e a variável some a cada etiqueta.

    ^XA^FO50,50^A0N,40,40^FVPedido 4471^FS^XZ
  • ^FB

    Bloco de texto

    Renderiza

    Quebra o texto em várias linhas dentro de uma largura fixa, com alinhamento à esquerda, ao centro, à direita ou justificado. É como um endereço comprido cabe na etiqueta sem estourar a margem.

    ^XA^FO50,50^A0N,30,30^FB420,3,0,L^FDAv. Exemplo 1000, Bairro Modelo, Cidade Exemplo^FS^XZ
  • ^FH

    Indicador hexadecimal

    Renderiza

    Permite escrever bytes em hexadecimal dentro do ^FD, escapados com underline. É a saída de sistemas que não conseguem emitir UTF-8 direto e precisam mandar o acento byte a byte.

    ^XA^CI28^FO50,50^A0N,40,40^FH^FDCaf_C3_A9^FS^XZ
  • ^SN

    Serialização

    Renderiza

    Incrementa um número a cada cópia impressa, com passo e preenchimento de zeros definidos. Serve para numerar volumes sem gerar uma etiqueta diferente para cada um.

    ^XA^FO50,50^A0N,40,40^SN0001,1,Y^FS^XZ

Códigos de barras

Um comando escolhe a simbologia, o ^FD seguinte carrega o conteúdo, e o ^BY define os padrões que todos herdam.

  • ^BY

    Padrão dos códigos de barras

    Renderiza

    Define largura do módulo, proporção largo/estreito e altura padrão para todos os códigos de barras seguintes. Mudar a largura do módulo escala todas as barras da etiqueta de uma vez — é o motivo usual de um código de barras de repente parar de caber.

    ^XA^BY3,3,120^FO50,50^BCN,120,Y,N,N^FD1234567890^FS^XZ
  • ^BC

    Code 128

    Renderiza

    Code 128, a simbologia da esmagadora maioria das etiquetas de envio brasileiras — Correios, Mercado Envios, Shopee e Magalu usam esta. O ^FD seguinte carrega o payload, e o parâmetro de linha legível imprime os números embaixo das barras.

    ^XA^FO50,50^BCN,120,Y,N,N^FD1234567890^FS^XZ
  • ^B3

    Code 39

    Renderiza

    Code 39, mais antigo e mais largo que o Code 128 para o mesmo conteúdo. Ainda aparece em etiquetas internas de estoque e em sistemas legados.

    ^XA^FO50,50^B3N,N,120,Y,N^FDABC123^FS^XZ
  • ^B2

    Intercalado 2 de 5

    Renderiza

    Interleaved 2 of 5, só para dígitos e sempre em quantidade par. Comum em caixas de transporte e em códigos de volume.

    ^XA^FO50,50^B2N,120,Y,N,N^FD12345678^FS^XZ
  • ^BA

    Code 93

    Renderiza

    Code 93, uma versão mais compacta do Code 39 com o mesmo conjunto de caracteres.

    ^XA^FO50,50^BAN,120,Y,N,N^FDCODE93^FS^XZ
  • ^BE

    EAN-13

    Renderiza

    EAN-13, o código de barras de produto que você vê na embalagem no supermercado. São 12 dígitos no ^FD e o décimo terceiro é o verificador, calculado sozinho.

    ^XA^FO50,50^BEN,120,Y,N^FD590123412345^FS^XZ
  • ^B8

    EAN-8

    Renderiza

    EAN-8, a versão curta do EAN-13, para embalagens pequenas demais para o de 13.

    ^XA^FO50,50^B8N,120,Y,N^FD1234567^FS^XZ
  • ^BU

    UPC-A

    Renderiza

    UPC-A, o equivalente norte-americano do EAN-13, com 11 dígitos mais o verificador.

    ^XA^FO50,50^BUN,120,Y,N^FD01234567890^FS^XZ
  • ^B9

    UPC-E

    Renderiza

    UPC-E, a forma compacta do UPC-A, com os zeros suprimidos.

    ^XA^FO50,50^B9N,120,Y,N^FD0123456^FS^XZ
  • ^BQ

    QR Code

    Renderiza

    QR Code, o quadrado bidimensional. Uma pegadinha: o ^FD exige um prefixo próprio antes do conteúdo — QA, para modo automático — então colar só a URL no ^FD não funciona e sai um QR vazio ou um aviso.

    ^XA^FO50,50^BQN,2,6^FDQA,https://exemplo.com/rastreio/4471^FS^XZ
  • ^BX

    Data Matrix

    Renderiza

    Data Matrix, o quadrado denso que cabe em espaço muito pequeno. Usado em etiqueta de volume e em identificação de peça.

    ^XA^FO50,50^BXN,6,200^FDCONTEUDO DATAMATRIX^FS^XZ
  • ^B7

    PDF417

    Renderiza

    PDF417, o retângulo achatado que guarda bastante texto. É o código grande que aparece na etiqueta dos Correios e em várias declarações de conteúdo.

    ^XA^FO50,50^B7N,3,5,0,0,N^FDConteudo PDF417^FS^XZ
  • ^BK

    Codabar

    Avisa

    Codabar. Reconhecido, mas não desenhado: o campo é pulado e um aviso aparece na tela, em vez de sair um código errado que o leitor não lê.

    ^XA^FO50,50^BKN,N,120,Y,N,A,A^FD12345^FS^XZ
  • ^BM

    MSI

    Avisa

    MSI. Reconhecido e pulado com aviso; usado sobretudo em prateleira de estoque.

    ^XA^FO50,50^BMN,B,120,Y,N,N^FD1234^FS^XZ
  • ^BR

    GS1 DataBar

    Avisa

    GS1 DataBar (antigo RSS). Reconhecido e pulado com aviso.

    ^XA^FO50,50^BRN,1,1,3,,120^FD12345678901234^FS^XZ
  • ^BZ

    POSTNET

    Avisa

    POSTNET, o código postal norte-americano de barras altas e baixas. Reconhecido e pulado com aviso; não aparece em etiqueta brasileira.

    ^XA^FO50,50^BZN,120,Y,N^FD12345^FS^XZ

Gráficos e formas

Retângulos, linhas e os bitmaps comprimidos em que um PDF convertido se transforma.

  • ^GB

    Retângulo e linha

    Renderiza

    Desenha um retângulo — ou uma linha, quando a altura ou a largura é zero. É com ^GB que se fazem as divisórias, as molduras e as tarjas pretas de uma etiqueta de envio.

    ^XA^FO50,50^GB420,140,4^FS^FO50,220^GB420,0,3^FS^XZ
  • ^GC

    Círculo

    Renderiza

    Desenha um círculo com diâmetro e espessura de traço definidos.

    ^XA^FO60,60^GC160,6,B^FS^XZ
  • ^GD

    Linha diagonal

    Renderiza

    Desenha uma diagonal dentro da caixa dada, inclinada para a direita ou a esquerda.

    ^XA^FO60,60^GD200,160,5,B,R^FS^XZ
  • ^GE

    Elipse

    Renderiza

    Desenha uma elipse na largura e altura dadas.

    ^XA^FO60,60^GE260,140,5,B^FS^XZ
  • ^GF

    Campo gráfico

    Renderiza

    Embute uma imagem em bitmap dentro da etiqueta, normalmente comprimida em Z64. É exatamente o que este site gera quando você converte um PDF ou um PNG em ZPL: cada página vira um ^GF.

    ^XA^FO60,60^GFA,16,16,2,FFFFC003C003C003C003C003C003FFFF^FS^XZ
  • ^XG

    Chamar gráfico

    Renderiza

    Desenha um gráfico que já foi salvo na memória da impressora por um ~DG. É como um logotipo sobe uma vez e é reaproveitado em todas as etiquetas do lote.

    ~DGR:LOGO.GRF,16,2,FFFFC003C003C003C003C003C003FFFF^XA^FO60,60^XGR:LOGO.GRF,1,1^FS^XZ

Configurações da impressora

Comandos sobre o equipamento, não sobre a arte. Um renderizador não tem cabeçote térmico nem ribbon, então estes são aceitos e não mudam a imagem — o que é o comportamento correto, não uma falta.

  • ^MD

    Escurecimento

    Aceito

    Ajusta o escurecimento do cabeçote térmico. Aceito e sem efeito aqui: um renderizador não tem cabeçote, e ignorar em silêncio é o comportamento certo — o comando não é um erro no seu arquivo.

    ^XA^MD10^FO50,50^A0N,40,40^FDEscurecimento definido^FS^XZ
  • ^MT

    Tipo de mídia

    Aceito

    Diz se a impressão é térmica direta (^MTD) ou por transferência com ribbon (^MTT). É uma configuração de equipamento e não muda a imagem.

    ^XA^MTD^FO50,50^A0N,40,40^FDTérmica direta^FS^XZ
  • ^MN

    Sensor de mídia

    Aceito

    Diz como a impressora acha o começo da próxima etiqueta: por espaço entre elas, por marca preta ou contínua.

    ^XA^MNY^FO50,50^A0N,40,40^FDSensor de espaço^FS^XZ
  • ^MM

    Modo de impressão

    Aceito

    Destaque manual, corte, descolagem ou rebobinamento depois de imprimir.

    ^XA^MMT^FO50,50^A0N,40,40^FDDestaque manual^FS^XZ
  • ^PR

    Velocidade de impressão

    Aceito

    Velocidades de impressão, avanço e recuo do rolo.

    ^XA^PR4^FO50,50^A0N,40,40^FDQuatro polegadas por segundo^FS^XZ
  • ^MC

    Limpar bitmap

    Aceito

    Limpa o bitmap da impressora entre etiquetas. Vale conhecer porque um bloco que só contém manutenção como esta — ^XA^MCY^XZ — é descartado em vez de virar uma página em branco, que é por que um arquivo de transportadora com cinquenta etiquetas devolve cinquenta páginas e não cem.

    ^XA^MCY^FO50,50^A0N,40,40^FDAinda desenha^FS^XZ
  • ^JU

    Salvar configuração

    Aceito

    Salva ou restaura as configurações da própria impressora.

    ^XA^JUS^FO50,50^A0N,40,40^FDConfiguração salva^FS^XZ

Cole qualquer exemplo acima e veja renderizar

Arraste o arquivo, cole o código ou escolha do dispositivo

.txt · .zpl · .prn · .zip · .pdf · .png · .jpg — 30 etiquetas por dia

A conversão acontece no seu navegador: seu arquivo nunca sai do seu aparelho.Como isso funciona
Grátis, sem cadastroSem uploadSem marca d'águaLote de vários arquivosPDF · PNG · ZIP

Dúvidas

Perguntas frequentes

O que significa ^XA em ZPL?

^XA abre uma etiqueta e ^XZ fecha e manda imprimir. Tudo entre os dois descreve uma etiqueta impressa, então um arquivo com cinquenta blocos ^XA são cinquenta etiquetas — que é a cara de um dia de pedidos baixado de uma vez no marketplace.

O que faz o comando ^FO?

^FO (Field Origin) define onde o próximo campo é desenhado, contando em pontos a partir da esquerda e do topo da etiqueta. Em ^FO120,60 são 120 pontos para a direita e 60 para baixo. Como tudo é medido em pontos e não em milímetros, o mesmo ^FO cai em lugares físicos diferentes a 203 e a 300 dpi.

Qual a diferença entre ^FO e ^FT?

Os dois posicionam o próximo campo, mas medem de pontos diferentes: o ^FO posiciona o canto superior esquerdo da célula do caractere, enquanto o ^FT posiciona a linha de base do texto. Uma sequência de ^FT alinha as letras entre si, que costuma ser o que você quer quando mistura tamanhos de fonte na mesma linha.

Por que o texto com acento sai errado na etiqueta?

Quase sempre é um ^CI28 faltando, que é o comando que seleciona UTF-8 para os dados dos campos seguintes. Sem ele a impressora interpreta os bytes na codificação padrão dela e o “ç” chega como dois caracteres embaralhados — “Endereço” vira “Endereço”. A alternativa é o ^FH com os bytes escapados, que é o que sistemas incapazes de emitir UTF-8 usam.

Como mudar o tamanho do código de barras em ZPL?

O ^BY define a largura do módulo, a proporção largo/estreito e a altura padrão de todos os códigos de barras que vierem depois, e cada comando de código de barras ainda pode sobrescrever a própria altura. Mudar a largura do módulo escala todas as barras da etiqueta de uma vez — é o motivo usual de um código de barras de repente parar de caber.

Este conversor suporta todos os comandos ZPL?

Não, e a tabela diz quais. A maior parte dos comandos de formato renderiza, comandos de equipamento como ^MD e ^MT são aceitos e não têm efeito sobre uma imagem, e um punhado de simbologias de código de barras avisa e pula o campo em vez de desenhar algo errado. Qualquer coisa não reconhecida gera um aviso e o resto da etiqueta continua renderizando.

Outros guias