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
^XZCuatro 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
| Comando | Qué hace |
|---|---|
| ^XA | Abre una etiqueta. Toda etiqueta empieza aquí. |
| ^XZ | Cierra la etiqueta. Sin él, la etiqueta se pierde en silencio. |
| ^CI28 | Declara que el texto del archivo es UTF-8. Sin él, las tildes salen como caracteres raros. |
| ^FS | Cierra un campo. Si falta uno, el campo siguiente se traga como si fuera texto. |
| ^FX | Un comentario. Se ignora al convertir, y sirve a quien lea el archivo después. |
| ^LH | Desplaza el origen de toda la etiqueta. Práctico para corregir un margen sin tocar cada campo. |
Posición y texto
| Comando | Qué hace |
|---|---|
| ^FO x,y | Coloca el siguiente campo, medido desde la esquina superior izquierda, en puntos. |
| ^FT x,y | Coloca por la línea base del texto en vez de por arriba. Útil para alinear textos de tamaños distintos. |
| ^A0 o,a,a | Fuente escalable. El primer valor es la orientación (N, R, I, B), después alto y ancho en puntos. |
| ^FD | El contenido del campo: lo que se imprime. |
| ^FB a,n,e,j,s | Un 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
| Comando | Qué hace |
|---|---|
| ^GB a,a,g | Dibuja un rectángulo. Con alto o ancho de 1 se convierte en una línea divisoria. |
| ^BY a,p,a | Fija ancho de barra, proporción y alto para los códigos que siguen. El valor por defecto equivale a ^BY2. |
| ^BC | Code 128, el código de barras lineal de las etiquetas de transporte. |
| ^BQ | Código QR. |
| ^BX | Data Matrix. |
| ^GFA | Una 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.