Comandos ZPL Mais Comuns
Referência completa de mais de 40 comandos para programação de impressoras Zebra com exemplos práticos
Experimente nossas ferramentas ZPL gratuitas agora
Gratuito, sem cadastro — Resultados instantâneos
Referência de Comandos ZPL
ZPL (Zebra Programming Language) utiliza comandos que começam com ^ (caret) ou ~ (til). Os comandos com ^ são usados dentro do formato da etiqueta, entre ^XA e ^XZ. Os comandos com ~ são usados para configuração da impressora e podem ser enviados fora de um formato. Cada comando tem parâmetros opcionais separados por vírgula. Este guia cobre os comandos mais utilizados em etiquetas de envio, inventário, varejo e logística.
Categorias de comandos
Comandos de formato de etiqueta
| Comando | Descripción | Ejemplo | Parámetros |
|---|---|---|---|
| ^XA | Início de formato de etiqueta. Todo código ZPL deve começar com este comando. | ^XA ... ^XZ | Sem parâmetros |
| ^XZ | Fim de formato de etiqueta. Fecha o bloco iniciado com ^XA e envia a etiqueta para imprimir. | ^XA ^FO50,50 ^FDOlá^FS ^XZ | Sem parâmetros |
| ^FO | Origem de campo. Define a posição X,Y onde será colocado o próximo elemento (texto, código de barras, gráfico). | ^FO100,200 | x,y - Coordenadas em pontos (dots). 203 dpi = 8 dots/mm |
| ^FT | Tipografia de campo. Similar ao ^FO mas posiciona a partir da linha base do texto, útil para alinhar textos de tamanhos diferentes. | ^FT100,200 | x,y - Coordenadas a partir da linha base do texto |
| ^FS | Separador de campo. Indica o fim de um campo individual. Cada campo (texto, código de barras, gráfico) deve terminar com ^FS. | ^FO50,50^FDTexto^FS | Sem parâmetros |
| ^CI | Mudar codificação internacional. Permite usar caracteres especiais como acentos (á, é, ã, ç) e símbolos. | ^CI28 | código - 28 = UTF-8, 13 = Latin-1. Use ^CI28 para português |
| ^CF | Fonte padrão. Estabelece a fonte, orientação e tamanho padrão para toda a etiqueta. | ^CF0,30,30 | fonte,altura,largura - Fonte 0 é a fonte interna padrão |
| ^FW | Orientação padrão de campos. Estabelece a rotação padrão para texto e códigos de barras. | ^FWR | N=Normal, R=90°, I=180°, B=270° |
Comandos de texto
| Comando | Descripción | Ejemplo | Parámetros |
|---|---|---|---|
| ^A | Seleção de fonte e tamanho. Define qual fonte usar e seu tamanho para o próximo campo de texto. | ^A0N,30,30 | f,o,h,w - f=Fonte (0-9,A-Z), o=Orientação (N,R,I,B), h=Altura, w=Largura |
| ^FD | Dados de campo. O texto ou dado que será impresso. Sempre vai depois de ^FO e ^A, e antes de ^FS. | ^FO50,50^A0N,30,30^FDMeu texto^FS | texto - Conteúdo a imprimir (máx. 3072 caracteres) |
| ^FB | Bloco de campo multilinha. Cria uma área de texto com largura fixa que ajusta o texto automaticamente em várias linhas. | ^FB400,3,0,L,0^FDTexto longo que se ajusta automaticamente^FS | largura,max_linhas,espaçamento,alinhamento(L/C/R/J),recuo |
| ^FH | Indicador hexadecimal. Permite inserir caracteres especiais usando seu código hex precedido por _ (underscore). | ^FH^FDPreço: _c2_a250.00^FS | indicador - Por padrão usa _ como prefixo hex |
| ^FN | Número de campo para templates. Cria campos numerados que podem ser preenchidos depois, útil para etiquetas com dados variáveis. | ^FO50,50^A0N,30,30^FN1^FS | número - Número do campo (1-999) para substituição |
| ^SN | Serialização numérica. Incrementa automaticamente um número em cada etiqueta impressa, ideal para números de série ou lotes. | ^FO50,50^A0N,30,30^SN001,1,Y^FS | início,incremento,preencher_zeros(Y/N) |
Comandos de códigos de barras
| Comando | Descripción | Ejemplo | Parámetros |
|---|---|---|---|
| ^BY | Configuração base de código de barras. Define a largura do módulo, ratio e altura padrão. Deve ir ANTES do comando de código de barras. | ^BY2,3,100 | largura_módulo(1-10),ratio(2.0-3.0),altura - A largura controla a resolução |
| ^BC | Code 128 — O mais usado em logística e envios. Codifica números, letras e caracteres especiais. Padrão em transportadoras. | ^FO50,50^BY2^BCN,100,Y,N,N^FD123456789^FS | o,altura,interpretação(Y/N),acima(Y/N),checksum(Y/N) |
| ^BQ | Código QR. Codifica URLs, texto longo ou dados binários. Muito usado em etiquetas de rastreamento e marketing. | ^FO50,50^BQN,2,5^FDQA,https://exemplo.com^FS | o,modelo(1/2),magnificação(1-10). Prefixo dados: QA=auto, QM=manual |
| ^BE | EAN-13 — Padrão mundial para produtos de varejo. Requer exatamente 12 dígitos (o 13° é checksum automático). | ^FO50,50^BY2^BEN,100,Y,N^FD789123456789^FS | o,altura,interpretação(Y/N),acima(Y/N) |
| ^BU | UPC-A — Padrão no varejo dos Estados Unidos e Canadá. Requer exatamente 11 dígitos (o 12° é checksum). | ^FO50,50^BY2^BUN,100,Y,N^FD12345678901^FS | o,altura,interpretação(Y/N),acima(Y/N) |
| ^B3 | Code 39 — Muito usado em inventários e manufatura. Codifica apenas letras maiúsculas, números e alguns símbolos. | ^FO50,50^BY2^B3N,N,100,Y,N^FDABC123^FS | o,checksum(Y/N),altura,interpretação(Y/N),acima(Y/N) |
| ^BX | DataMatrix — Código 2D compacto usado em manufatura, eletrônica e farmacêutica. Armazena muita informação em pouco espaço. | ^FO50,50^BXN,5,200^FDSN:ABC123456^FS | o,altura,qualidade(0-200). 200=máxima correção de erros |
| ^B7 | PDF417 — Código 2D de alta capacidade. Usado em CNH, passagens aéreas e documentos de identidade. | ^FO50,50^B7N,5,2,3,10,N^FDDados extensos aqui^FS | o,altura,segurança(0-8),colunas,linhas,truncado(Y/N) |
| ^BO | Aztec — Código 2D compacto sem zona de silêncio. Usado em bilhetes de transporte e aplicações com espaço limitado. | ^FO50,50^BON,5,N^FDDados Aztec^FS | o,magnificação,ECL(Y/N). Não requer zona branca ao redor |
Comandos gráficos e linhas
| Comando | Descripción | Ejemplo | Parámetros |
|---|---|---|---|
| ^GB | Desenhar caixa ou retângulo. Cria bordas, separadores e molduras para organizar visualmente a etiqueta. | ^FO50,50^GB400,200,3^FS | largura,altura,espessura_linha,cor(B/W),arredondamento(0-8) |
| ^GC | Desenhar círculo. Cria um círculo com diâmetro e espessura de linha especificados. | ^FO50,50^GC100,3,B^FS | diâmetro,espessura_linha,cor(B/W) |
| ^GD | Desenhar linha diagonal. Cria uma linha do canto superior-esquerdo ao inferior-direito (ou vice-versa). | ^FO50,50^GD200,100,3,B,L^FS | largura,altura,espessura,cor(B/W),direção(L/R) |
| ^GE | Desenhar elipse. Cria uma elipse com largura, altura e espessura de borda especificados. | ^FO50,50^GE200,100,3,B^FS | largura,altura,espessura_linha,cor(B/W) |
| ^GF | Campo gráfico. Insere uma imagem em formato comprimido (hex ou Z64). Usado para logos, assinaturas e gráficos personalizados. | ^GFA,dados_comprimidos... | formato(A=ASCII hex),bytes_dados,bytes_por_linha,linhas,dados |
Configuração de etiqueta
| Comando | Descripción | Ejemplo | Parámetros |
|---|---|---|---|
| ^LH | Origem da etiqueta (Label Home). Desloca o ponto de referência (0,0) de toda a etiqueta. Útil para ajustar margens. | ^LH30,20 | x,y - Nova origem em pontos |
| ^LL | Comprimento da etiqueta. Define o comprimento total da etiqueta em pontos. Necessário se a impressora não detectar automaticamente. | ^LL800 | comprimento - Em pontos. 203dpi: 800pts ≈ 100mm |
| ^PW | Largura de impressão. Define a largura máxima de impressão. Útil para centralizar conteúdo em etiquetas estreitas. | ^PW812 | largura - Em pontos. 4" a 203dpi = 812 pontos |
| ^LT | Ajuste superior da etiqueta (Label Top). Desloca toda a imagem para cima ou para baixo para calibrar a posição vertical. | ^LT10 | deslocamento - Positivo=baixo, negativo=cima (-120 a 120) |
| ^LS | Deslocamento lateral (Label Shift). Move toda a imagem para esquerda ou direita para calibração horizontal. | ^LS-20 | deslocamento - Positivo=direita, negativo=esquerda |
| ^MN | Tipo de mídia (Media Tracking). Configura como a impressora detecta as etiquetas: por marca preta, espaço ou contínuo. | ^MNY | N=Contínuo, Y=Espaço/Gap, M=Marca preta, W=Web sensing |
| ^MM | Modo de impressão. Controla se a impressora corta, descola ou rebobina as etiquetas após imprimir. | ^MMT | T=Tear-off, P=Peel-off, R=Rewind, C=Cutter, A=Applicator |
Comandos de impressão
| Comando | Descripción | Ejemplo | Parámetros |
|---|---|---|---|
| ^PQ | Quantidade de impressão. Define quantas cópias imprimir da etiqueta atual. Suporta pausa entre grupos. | ^PQ3,0,1,Y | quantidade,pausa_entre_grupos,cópias_por_grupo,override(Y/N) |
| ^PR | Velocidade de impressão. Controla velocidades de impressão, retrocesso e alimentação. Menor velocidade = melhor qualidade. | ^PR4,4,4 | impressão(1-14),retrocesso,alimentação - Velocidade em polegadas/segundo |
| ^PM | Imagem espelhada. Inverte toda a imagem horizontalmente. Útil para impressão em materiais transparentes. | ^PMY | Y=Espelho ativado, N=Normal |
| ^PO | Orientação de impressão. Rotaciona toda a etiqueta 180° para impressoras que alimentam por baixo. | ^POI | N=Normal, I=Invertido (180°) |
Comandos de configuração de impressora (~)
| Comando | Descripción | Ejemplo | Parámetros |
|---|---|---|---|
| ~SD | Configurar escuridão (Set Darkness). Ajusta a intensidade de impressão. Valores altos = mais escuro, mais consumo de ribbon. | ~SD15 | valor (0-30) - Recomendado: 10-20 para thermal transfer |
| ~JA | Cancelar todos os trabalhos. Para a impressão atual e limpa o buffer da impressora. | ~JA | Sem parâmetros |
| ~HS | Status do host. Solicita informações de status da impressora: papel, ribbon, erros ativos. | ~HS | Sem parâmetros - Retorna 3 linhas de status |
| ~DG | Download de gráfico. Armazena uma imagem na memória da impressora para uso repetido sem reenviar dados. | ~DGR:LOGO.GRF,bytes,largura,dados | nome,bytes_totais,bytes_por_linha,dados_hex |
Perguntas frequentes sobre comandos ZPL
Quais são os comandos ZPL essenciais para iniciantes?
Os 6 comandos fundamentais são: ^XA (início da etiqueta), ^XZ (fim), ^FO (posição X,Y), ^A (fonte e tamanho), ^FD (texto a imprimir) e ^FS (fim de campo). Com esses 6 comandos você já cria etiquetas básicas de texto. Para etiquetas de envio, adicione ^BY (configurar código de barras) e ^BC (Code 128).
Qual a diferença entre ^FO e ^FT no ZPL?
^FO (Field Origin) posiciona a partir do canto superior esquerdo do elemento. ^FT (Field Typeset) posiciona a partir da linha base do texto. Para a maioria dos casos ^FO é mais intuitivo. Use ^FT quando precisar alinhar textos de tamanhos diferentes na mesma linha base, pois ^FT mantém o alinhamento vertical independente do tamanho da fonte.
Como imprimir acentos e cedilha (ç) em ZPL?
Use o comando ^CI28 no início da sua etiqueta para ativar a codificação UTF-8. Exemplo: ^XA ^CI28 ^FO50,50 ^A0N,30,30 ^FDSão Paulo — Ação^FS ^XZ. Sem ^CI28, caracteres especiais como á, é, ã, ç aparecerão como símbolos incorretos.
Como imprimir múltiplas cópias da mesma etiqueta?
Use o comando ^PQ antes de ^XZ. Exemplo: ^PQ5 imprime 5 cópias. Para serialização (números incrementais), use ^SN dentro do campo: ^FO50,50 ^A0N,30,30 ^SN001,1,Y^FS imprimirá 001, 002, 003... em cada cópia sucessiva.
Os comandos ZPL funcionam em impressoras Elgin, Knup e Xprinter?
Não diretamente. ZPL é nativo apenas das impressoras Zebra. Algumas impressoras como TSC e SATO têm modos de compatibilidade parcial, mas não é 100% confiável. Para impressoras Elgin L42 Pro, Xprinter XP-365B, Knup ou Brother, a solução recomendada é converter o ZPL para PDF usando o ZPLPDF e depois imprimir o PDF normalmente.
Qual código de barras usar para etiquetas de envio?
Code 128 (^BC) é o padrão em logística e transportadoras no mundo inteiro. Para etiquetas de marketplace como Mercado Livre, Amazon ou Shopee, o código já vem na etiqueta ZPL gerada pela plataforma. Se precisar criar seu próprio código de barras de envio, use ^BY2 ^BCN,100,Y para um Code 128 legível com interpretação visível abaixo.
Como ajustar o tamanho e qualidade de impressão em ZPL?
Para a resolução de códigos de barras, ajuste o primeiro parâmetro de ^BY (largura do módulo): ^BY2 para padrão, ^BY3 para mais grosso. Para a escuridão geral, use ~SD seguido de um valor de 0-30 (recomendado 15). Para a velocidade (menor = melhor qualidade), use ^PR seguido da velocidade em polegadas/segundo: ^PR4 é um bom equilíbrio qualidade/velocidade.
Valide seu código ZPL
Use nosso validador para verificar se seu código ZPL está correto antes de enviar para a impressora.