Un par, una etiqueta
^XA no lleva ningún parámetro: dos caracteres y listo. Lo mismo vale para ^XZ. Lo que delimitan es un formato de etiqueta completo, y la impresora recién empieza a dibujar cuando recibe el ^XZ — hasta ahí va acumulando instrucciones.
Por eso un archivo con cincuenta pares ^XA…^XZ son cincuenta etiquetas, una detrás de otra. No existe un comando de “próxima etiqueta”: el próximo ^XA es el comando de próxima etiqueta.
- ^XA — abre el formato. Sin parámetros.
- ^XZ — cierra el formato e imprime. Sin parámetros.
- ^PQ — dentro del par, define cuántas copias de esa etiqueta imprimir.
- Un ^XZ que falta al final del archivo igual se renderiza aquí, pero una impresora quedaría esperándolo.
Por qué salieron menos páginas que bloques ^XA
Un bloque que no dibuja nada es mantenimiento de impresora, no una etiqueta. ^XA^MCY^XZ limpia el mapa de bits; ^XA^IDR:ARCH.GRF^FS^XZ borra un archivo de la memoria. Ninguno produce imagen, y convertirlos en página en blanco haría que un archivo de cincuenta etiquetas se volviera cien páginas, la mitad vacías.
Así que esos bloques se descartan a propósito. Un bloque que intentó dibujar se conserva aunque salga en blanco — la diferencia es haberlo intentado, no el resultado.
Qué suele venir justo después del ^XA
Los comandos que valen para la etiqueta entera van arriba, porque afectan todo lo que viene después: ^PW y ^LL fijan el tamaño, ^CI28 fija la codificación de caracteres, ^LH mueve el origen, ^BY fija los valores por defecto de los códigos de barras.
Si la ñ o los acentos salen mal, es acá donde falta algo: un ^CI28 justo después del ^XA lo resuelve, y ponerlo por la mitad solo afecta a los campos de ahí en adelante.