Los comandos ZPL que de verdad te vas a encontrar

El manual de Zebra lista más de doscientos comandos. Una etiqueta de transporte usa menos de veinte. Esta es esa lista, con lo que hace cada uno y el error que suele provocar.

La etiqueta mínima

Toda etiqueta ZPL tiene el mismo marco: abre, describe campos, cierra. Esta es la más pequeña que hace algo:

^XA
^CI28
^FO50,50^A0N,40,40^FDPedido 1234^FS
^XZ

Cuatro líneas, cada una con un papel: abrir, decir que el archivo es UTF-8, dibujar un texto en una posición, cerrar. Todo lo demás es una variación de eso.

El detalle que más confunde al llegar: todas las medidas de ZPL van en puntos, no en milímetros. Cuántos puntos caben en un milímetro depende de la densidad de la impresora, y por eso hay una guía dedicada solo a la densidad.

Estructura

ComandoQué hace
^XAAbre una etiqueta. Toda etiqueta empieza aquí.
^XZCierra la etiqueta. Sin él, la etiqueta se pierde en silencio.
^CI28Declara que el texto del archivo es UTF-8. Sin él, las tildes salen como caracteres raros.
^FSCierra un campo. Si falta uno, el campo siguiente se traga como si fuera texto.
^FXUn comentario. Se ignora al convertir, y sirve a quien lea el archivo después.
^LHDesplaza el origen de toda la etiqueta. Práctico para corregir un margen sin tocar cada campo.

Posición y texto

ComandoQué hace
^FO x,yColoca el siguiente campo, medido desde la esquina superior izquierda, en puntos.
^FT x,yColoca por la línea base del texto en vez de por arriba. Útil para alinear textos de tamaños distintos.
^A0 o,a,aFuente escalable. El primer valor es la orientación (N, R, I, B), después alto y ancho en puntos.
^FDEl contenido del campo: lo que se imprime.
^FB a,n,e,j,sUn bloque de texto con salto automático: ancho, número de líneas, espaciado, alineación.

La orientación dentro de ^A0 es la que gira el texto de verdad. ^A0N es normal y ^A0R lo gira 90 grados. Probamos los dos.

Dibujo y códigos de barras

ComandoQué hace
^GB a,a,gDibuja un rectángulo. Con alto o ancho de 1 se convierte en una línea divisoria.
^BY a,p,aFija ancho de barra, proporción y alto para los códigos que siguen. El valor por defecto equivale a ^BY2.
^BCCode 128, el código de barras lineal de las etiquetas de transporte.
^BQCódigo QR.
^BXData Matrix.
^GFAUna imagen incrustada, punto a punto. Es lo que lleva el logotipo dentro del archivo.

^BY vale desde donde aparece hasta el final de la etiqueta, no solo para el código siguiente. En un archivo con dos códigos de tamaños distintos hay que repetir ^BY antes del segundo.

Los que puedes ignorar al convertir

Varios comandos que aparecen constantemente no hacen nada en un PDF, porque describen la máquina y no el dibujo: ^PQ (copias), ^PW y ^LL (tamaño), ^MD (oscuridad), ^PR (velocidad), ^PO (orientación del papel).

Ninguno es un error del archivo, y ninguno cambia lo que produce la conversión.La guía sobre comandos ignorados explica cada uno, con lo que medimos.

Cómo leer un archivo que no escribiste

El orden de lectura que funciona: busca los ^XA para saber cuántas etiquetas hay, y después lee un bloque entero de arriba abajo. Cada ^FS marca el final de un elemento, así que contar ^FS te da el número de cosas dibujadas.

Dentro de un bloque, las parejas ^FO y ^FD son el esqueleto: uno dice dónde, el otro dice qué. Un ^FD sin ^FO delante no hereda la posición del campo anterior, por intuitivo que suene: se va a la esquina superior izquierda. Lo probamos, y es la misma esquina donde acaba un campo cuyo ^FO está mal escrito.

← Todas las guías