linguaggio-zpl

ZPL spiegato semplice: il linguaggio delle stampanti di etichette per chi non programma

Chi lavora in magazzino o in produzione ha quasi sempre a che fare con una stampante di etichette, e spesso con una Zebra. Finché tutto funziona, nessuno si chiede come faccia il gestionale a “spiegare” alla stampante dove mettere il codice a barre, quanto grande scrivere il lotto o quante copie produrre. Poi arriva il giorno in cui l’etichetta esce tagliata, un campo va spostato di mezzo centimetro o bisogna aggiungere un QR code, e tutti guardano l’unica persona che “sa di ZPL”. In questo articolo spieghiamo il linguaggio ZPL in modo semplice: cos’è, come si legge un’etichetta scritta in ZPL, perché è così diffuso e come lavorarci senza essere programmatori.

Cos’è lo ZPL

ZPL sta per Zebra Programming Language. È il linguaggio sviluppato da Zebra Technologies per descrivere il contenuto di un’etichetta: testi, codici a barre, linee, riquadri, immagini. Tecnicamente è un linguaggio di descrizione di pagina, come lo è il PostScript per le stampanti da ufficio. La versione in uso da molti anni è lo ZPL II, che secondo Wikipedia conta oltre 170 comandi.

L’idea di fondo è semplice. Invece di inviare alla stampante un’immagine già pronta dell’etichetta, il computer invia un breve testo di istruzioni: “scrivi questo testo in questa posizione, con questo carattere”, “disegna un Code 128 con questo contenuto qui sotto”. È la stampante stessa a costruire l’etichetta e a stamparla.

Perché le stampanti industriali “parlano” ZPL

Si potrebbe stampare un’etichetta come si stampa un documento, passando dal driver di Windows. In molti casi si fa, ma negli ambienti produttivi il linguaggio nativo della stampante ha vantaggi concreti:

  • velocità: pochi byte di testo viaggiano e vengono elaborati molto più in fretta di un’immagine;
  • nitidezza dei codici a barre: la stampante disegna le barre alla propria risoluzione, senza approssimazioni dovute alla conversione da immagine;
  • integrazione semplice: qualsiasi sistema capace di produrre del testo, da un gestionale a un WMS a un’app sviluppata su misura, può generare un’etichetta;
  • indipendenza dal PC: non serve installare driver su ogni postazione, basta che il sistema raggiunga la stampante in rete;
  • coerenza: la stessa etichetta esce identica da qualunque postazione la mandi.

Lo ZPL non è più un’esclusiva Zebra. Diversi produttori offrono stampanti in grado di interpretarlo, direttamente o tramite un’emulazione: Honeywell, per esempio, la chiama ZSim. Il livello di compatibilità però varia, quindi un’etichetta complessa va sempre provata sulla stampante di destinazione.

Come si legge un’etichetta in ZPL

Un’etichetta ZPL ha una struttura fissa: inizia con ^XA e finisce con ^XZ. In mezzo ci sono i comandi, ognuno introdotto dall’accento circonflesso (^) o, per alcuni comandi di controllo, dalla tilde (~). Ecco un esempio minimo, con un testo e un codice a barre:

^XA
^FO50,50^A0N,40,40^FDLotto 24A118^FS
^FO50,120^BY2^BCN,100,Y,N,N^FD8001234567890^FS
^PQ2
^XZ

Riga per riga:

  1. ^XA apre l’etichetta.
  2. ^FO50,50 (Field Origin) posiziona il campo a 50 punti da sinistra e 50 dall’alto. ^A0N,40,40 sceglie il carattere, l’orientamento normale e l’altezza e la larghezza in punti. ^FD (Field Data) contiene il testo da stampare, ^FS (Field Separator) chiude il campo.
  3. ^FO50,120 sposta il punto di partenza più in basso. ^BY2 imposta la larghezza del modulo del codice a barre. ^BCN,100,Y,N,N disegna un Code 128 alto 100 punti con il testo leggibile sotto. Di nuovo ^FD per il contenuto e ^FS per chiudere.
  4. ^PQ2 chiede due copie.
  5. ^XZ chiude l’etichetta e avvia la stampa.

Già con questi pochi comandi si capisce molto: ogni elemento è un “campo” che ha una posizione, un formato e un contenuto. Modificare un’etichetta, nella maggior parte dei casi, significa cambiare uno di questi tre aspetti.

Il dettaglio che fa sbagliare tutti: i punti e i DPI

Nello ZPL le misure non sono in millimetri, ma in punti (dots), cioè i singoli elementi riscaldanti della testina di stampa. Quanti punti ci sono in un millimetro dipende dalla risoluzione della stampante:

  • a 203 dpi ci sono circa 8 punti per millimetro;
  • a 300 dpi circa 12 punti per millimetro;
  • a 600 dpi circa 24 punti per millimetro.

La conseguenza è importante: un’etichetta progettata per una stampante a 203 dpi, inviata a una stampante a 300 dpi, esce più piccola, con i campi che non occupano più lo spazio previsto. È uno degli errori più frequenti quando si sostituisce una stampante o se ne aggiunge una nuova in linea. Per questo, quando si prende un template, la risoluzione per cui è stato scritto conta tanto quanto il formato dell’etichetta.

Etichette fisse e dati variabili

Nella pratica, le aziende non riscrivono l’etichetta ogni volta. Separano la parte fissa, cioè layout, riquadri, loghi e posizione dei campi, dalla parte variabile: codice articolo, lotto, scadenza, quantità, destinatario. Il gestionale o l’applicazione si limita a inserire i dati del momento nei campi previsti.

Lo ZPL offre anche comandi per memorizzare un formato direttamente nella stampante e richiamarlo inviando solo i dati variabili (i comandi ^DF e ^XF). Molte integrazioni, però, preferiscono tenere il modello sul lato software e sostituire i valori prima dell’invio: è più facile da mantenere quando le stampanti sono tante e di modelli diversi. Per chi vuole approfondire come l’etichettatura automatica ha sostituito le vecchie prezzatrici, c’è il nostro articolo dalla prezzatrice alla stampa barcode intelligente.

Come lavorare con lo ZPL senza scrivere codice da zero

Nessuno si aspetta che un responsabile di magazzino scriva ZPL a mano. Ci sono però alcune abitudini che risparmiano molti problemi:

  • partire sempre da un template funzionante del formato e della risoluzione giusti, invece che da una pagina bianca;
  • cambiare una cosa alla volta e stampare una prova, così un errore si individua subito;
  • tenere un archivio dei template in uso, con nome chiaro, formato, DPI e data dell’ultima modifica;
  • documentare quali campi sono variabili e da quale sistema arrivano i dati;
  • provare sulla stampante reale prima di distribuire un’etichetta nuova su tutte le postazioni.

Proprio per il primo punto è nato ZPL Archive, un archivio online di template ZPL pronti da stampare, organizzati per settore (logistica, magazzino, retail, food, manifattura, eventi e altri) e per tipo di etichetta, ognuno con formato in millimetri e risoluzione indicati. Si parte da un modello già testato, si adattano i campi e si ottiene un’etichetta coerente con quelle che si usano già, senza reinventare il layout ogni volta.

FAQ

Serve saper programmare per modificare un’etichetta ZPL?
Per piccole modifiche no: spostare un campo, cambiare la dimensione di un testo o il contenuto di un codice richiede solo di capire la struttura dei comandi. Per integrazioni con gestionali e dati variabili serve invece qualcuno con competenze di sviluppo.

Posso usare lo ZPL con una stampante che non è Zebra?
Spesso sì, perché diversi produttori offrono la compatibilità o un’emulazione ZPL. Il livello di supporto varia da modello a modello, quindi conviene verificarlo nelle specifiche e provare le etichette prima di metterle in produzione.

Come faccio a vedere un’etichetta ZPL prima di stamparla?
Esistono strumenti di anteprima che mostrano il risultato a partire dal codice. In ogni caso la prova finale va fatta sulla stampante e sul supporto reali, perché risoluzione, dimensioni dell’etichetta e calibrazione influenzano il risultato.

Lo ZPL supporta i QR code e i codici 2D?
Sì. Oltre ai codici lineari come il Code 128 o l’EAN, lo ZPL prevede comandi per QR code, DataMatrix, PDF417 e altri simboli bidimensionali.

Un linguaggio semplice, se lo si guarda da vicino

Lo ZPL sembra criptico solo finché non si scopre che ogni riga dice tre cose: dove, come e cosa stampare. Capire questa logica permette di dialogare meglio con chi sviluppa le integrazioni, risolvere da soli le piccole modifiche e non dipendere da un’unica persona per ogni etichetta da ritoccare. Il passo successivo è smettere di partire da zero: un buon archivio di template, interno o esterno, è il modo più rapido per avere etichette corrette, coerenti e pronte per la stampante giusta.

Articoli simili