Progettazione di etichette Zebra (ZPL)¶
Le stampanti di etichette Zebra non comprendono i documenti normali. Leggono invece un piccolo insieme di comandi di testo chiamati ZPL (Zebra Programming Language). Un design ZPL è semplicemente un blocco di testo che indica alla stampante cosa mettere sull’etichetta e dove: una riga di testo qui, un prezzo là, un codice QR nell’angolo.
Questa pagina spiega ZPL da zero, in modo che Lei possa leggere, modificare e creare le Sue etichette prodotto senza aiuto. Progetti la Sua etichetta in , nel campo Design personalizzato etichetta prodotto Zebra (veda Configurazione della stampante).
Suggerimento
Raramente si parte da una pagina vuota. Gem Logic fornisce a ogni etichetta un design predefinito funzionante. Il modo più rapido per imparare è aprire quel design predefinito, cambiare una cosa, salvare e guardare l’immagine di anteprima. Ripeta finché non risulta corretto.
Avvio rapido¶
Vada in e trovi il campo Design personalizzato etichetta prodotto Zebra.
Effettui una piccola modifica (ad esempio, sposti una riga o ingrandisca il prezzo).
Clicchi su Salva. Gem Logic genera automaticamente un”immagine di anteprima dell’etichetta.
Guardi l’anteprima. Se non è corretta, modifichi e salvi di nuovo.
Nulla viene inviato a una stampante reale mentre sperimenta — l’anteprima è generata dal Suo design, quindi può iterare in sicurezza prima di stampare anche solo un’etichetta.
Come è costruita un’etichetta ZPL¶
Ogni etichetta inizia con ^XA e termina con ^XZ. Tutto quello che si trova nel mezzo descrive l’etichetta. Un comando inizia sempre con un accento circonflesso ^ (o talvolta una tilde ~).
^XA (start of the label)
... commands that build the label ...
^XZ (end of the label)
All’interno, lo schema più comune è «andare a una posizione, poi stampare qualcosa lì»:
^FO50,30^FDHello^FS
Quella singola riga significa: andare alla posizione 50,30 e stampare il testo «Hello». Scomposta:
^FO50,30— Field Origin: spostare a x=50, y=30 (l’angolo in alto a sinistra di ciò che segue).^FDHello— Field Data: il contenuto effettivo da stampare.^FS— Field Separator: segna la fine di questo elemento. Chiuda sempre un campo con^FS.
Questo rappresenta il 90% della progettazione di etichette: una serie di righe «posizione + contenuto» sovrapposte.
Dimensione etichetta, punti e millimetri¶
Le stampanti Zebra misurano tutto in punti, non in millimetri. La maggior parte delle stampanti di etichette stampa a 203 DPI, il che significa:
1 mm ≈ 8 punti
1 pollice = 203 punti
Quindi un’etichetta larga 56 mm e alta 13 mm misura circa 448 punti in larghezza e 104 punti in altezza.
Due comandi impostano l’area stampabile:
^PW— Print Width, larghezza di stampa, in punti.^LL— Label Length, lunghezza etichetta (altezza), in punti.
^PW448 (label is 448 dots wide ≈ 56 mm)
^LL104 (label is 104 dots tall ≈ 13 mm)
Importante
La dimensione fisica dell’etichetta viene anche dai campi Larghezza etichetta prodotto e Lunghezza etichetta prodotto accanto al design. Manteneteli sincronizzati con il Suo stock di etichette effettivo. La variabile {label_length} viene compilata automaticamente dal campo lunghezza, motivo per cui il design predefinito usa ^LL{label_length}.
Posizionamento: la griglia di coordinate¶
Pensi all’etichetta come a una griglia. Il punto 0,0 è l”angolo superiore sinistro. Il primo numero è x (quanto a destra) e il secondo è y (quanto in basso), entrambi in punti.
^FO0,0 top-left corner
^FO200,0 200 dots to the right, same height
^FO0,40 left edge, 40 dots down
Per spostare un elemento, modifichi i suoi numeri ^FO. x più grande = più a destra; y più grande = più in basso. È così che si posiziona lo SKU su una riga e il metallo sulla successiva: si dà loro la stessa x ma una y maggiore sulla seconda riga.
Aggiunta e dimensionamento del testo¶
Prima di stampare il testo si sceglie solitamente una dimensione del carattere. Il modo più semplice è ^CF0,h (Change default Font, modificare il carattere predefinito), dove h è l’altezza del carattere in punti:
^CF0,28 use ~28-dot-tall text from here on
^FO50,30^FDPrice^FS print "Price" at 50,30 in that size
Ogni ^FD ... ^FS dopo un ^CF usa quella dimensione finché non ne imposta una diversa. Quindi per mescolare dimensioni su un’etichetta, imposti ^CF0,28 prima del testo grande e ^CF0,14 prima del testo piccolo.
Suggerimento
Per aggiungere una nuova riga di testo, non prema Invio — aggiunga un altro campo posizionato più in basso. Copi una riga esistente, le dia un valore y maggiore e modifichi il suo contenuto.
Inserimento dati prodotto¶
Un design di etichetta viene riutilizzato per ogni prodotto, quindi non digita lo SKU o il prezzo manualmente. Invece inserisca le variabili tra parentesi graffe e Gem Logic le sostituisce con i dati reali di ciascun prodotto quando l’etichetta viene stampata.
^FO1,8^FD{item_sku}^FS prints this product's SKU
^FO180,50^FD{currency}{price}^FS prints e.g. €129
Le stesse variabili sono mostrate come badge cliccabili direttamente sotto il campo del design nell’app, così può vedere quali sono disponibili mentre modifica.
Variabili disponibili¶
Prodotto
{brand}: nome del brand{product_title}: titolo del prodotto{item_sku}: SKU del prodotto{ean_code}: barcode EAN (usato per il codice QR){price}e{currency}: prezzo e simbolo di valuta{serial_number}: numero di serie{year_of_manufacture}: anno di fabbricazione{supplier_product_reference}: riferimento prodotto del fornitore{supplier_reference}: riferimento fornitore
Materiali e gemme
{material_1}a{material_5}: descrizione completa del materiale (peso, nome e dettagli della gemma){material_only_1}a{material_only_5}: solo nome del materiale o della gemma
Attributi
{attribute_1}a{attribute_5}: attributo nella formanome: valore{attribute_name_1}a{attribute_name_5}: solo nome dell’attributo{attribute_value_1}a{attribute_value_5}: solo valore dell’attributo
Dimensioni
{weight},{length},{width},{height},{diameter},{size},{thickness},{quality}
Collezioni
{collections}: le collezioni a cui appartiene il prodotto
Categorie
{categories}: le categorie a cui appartiene il prodotto, separate da virgole
Paese di origine
{country_of_origin}: il paese da cui proviene il prodotto
Purezza
{clarity}: la purezza della gemma del prodotto
Codice di costo
{encoded_cost}: il costo di acquisto convertito nel Suo codice di costo privato (le lettere sono impostate in ), in modo che il costo reale non sia leggibile sull’etichetta.
RFID (necessario solo per etichette con tag RFID)
{item_sku_epc_hex}: lo SKU codificato come valore EPC per il chip RFID{item_sku_epc_word_count}: la lunghezza EPC, utilizzata dal comando RFID ZPL
Layout
{label_length}: compilato automaticamente dall’impostazione della lunghezza dell’etichetta
Codici QR e barcode¶
Un codice QR viene aggiunto con ^BQN seguito da un campo dati che inizia con QA,:
^FO0,30^BQN,2,2^FDQA,{ean_code}^FS
^FO0,30— posizione del codice QR.^BQN,2,2— un codice QR. L”ultimo numero indica la dimensione (ingrandimento). Lo aumenti (3, 4, 5…) per ottenere un codice più grande e più facile da scansionare; lo riduca per risparmiare spazio.^FDQA,{ean_code}^FS— i dati contenuti nel codice. Qui codifica l’EAN del prodotto.
Per un barcode 1D classico, utilizzi invece ^BCN (Code 128):
^FO20,20^BCN,60,Y,N,N^FD{ean_code}^FS
Il 60 è l’altezza del barcode in punti, e Y stampa il numero leggibile sotto.
Il design predefinito, spiegato¶
Questo è il design iniziale fornito da Gem Logic, annotato riga per riga. Leggerlo è il modo più rapido per capire come si incastrano i vari elementi.
^XA
^MD20
^CI28
^LL{label_length}
^LH0,0
^CF0,18
^FO180,8^FD{brand}^FS
^CF0,14
^FO50,45^FD{material_2}^FS
^FO50,60^FD{material_3}^FS
^FO180,27^FD{material_1}^FS
^CF0,28
^FO180,50^FD{currency}{price}^FS
^CF0,16
^FO1,8^FD{item_sku}^FS
^FO1,23^FD{supplier_product_reference}^FS
^FO50,60^FD{supplier_reference}^FS
^FO0,30^BQN,2,2
^FDQA,{ean_code}^FS
^XZ
Riga per riga:
^XA— inizio dell’etichetta.^MD20— intensità di stampa. Aumentarla se le etichette appaiono sbiadite, ridurla se il testo è sfocato.^CI28— codifica caratteri, in modo che€e gli accenti vengano stampati correttamente.^LL{label_length}— altezza dell’etichetta, compilata automaticamente dall’impostazione di lunghezza.^LH0,0— posizione di partenza: l’origine è l’angolo in alto a sinistra.^CF0,18— dimensione del testo ~18 punti per le righe successive.^FO180,8^FD{brand}^FS— il marchio, vicino alla parte superiore.^CF0,14— testo più piccolo da qui in poi.^FO50,45^FD{material_2}^FS,^FO50,60^FD{material_3}^FS,^FO180,27^FD{material_1}^FS— i tre materiali.^CF0,28— testo più grande per il prezzo.^FO180,50^FD{currency}{price}^FS— il prezzo, ad es. €129.^CF0,16— testo medio.^FO1,8^FD{item_sku}^FS— lo SKU, in alto a sinistra.^FO1,23^FD{supplier_product_reference}^FS— riferimento prodotto del fornitore.^FO50,60^FD{supplier_reference}^FS— riferimento fornitore.^FO0,30^BQN,2,2poi^FDQA,{ean_code}^FS— il codice QR (in basso a sinistra) e i suoi dati (l’EAN).^XZ— fine dell’etichetta.
Avvertimento
ZPL non supporta commenti di riga — non utilizzare il punto e virgola ; per aggiungere note. ZPL comprende solo i comandi che iniziano con ^ (o ~), quindi tutto ciò che segue un ; viene letto come parte del valore del comando (o come dati dell’etichetta dispersi). Questo è ciò che causa errori come «Value “20;” is not a valid number» o «Ignored unrecognized content», e un ; disperso può spostare o rompere silenziosamente il layout.
Per lasciare una nota, utilizzare il comando di commento ^FX, chiuso con ^FS. La stampante ignora tutto ciò che si trova al suo interno:
^FX brand, near the top ^FS
^FO180,8^FD{brand}^FS
L’unica regola: un commento ^FX non può contenere un ^ o ~ — questi caratteri terminano il commento e avviano il comando successivo.
Modifiche comuni¶
- Ingrandire il prezzo
Trovare il
^CF0,28prima della riga{price}e aumentare il numero, ad es.^CF0,40.- Spostare un elemento
Modificare i numeri
^FO. Per spostare il marchio verso il basso, aumentare il secondo numero in^FO180,8(il8).- Aggiungere una nuova riga di testo
Copiare una riga
^FO…^FD…^FS, assegnarle un valoreymaggiore in modo che si posizioni più in basso e modificare il contenuto o la variabile.- Ingrandire il codice QR
Aumentate l’ultimo numero in
^BQN,2,2(provate^BQN,3,3). Se viene tagliato, dategli più spazio o spostatelo a sinistra/in alto con il suo^FO.- Aggiungere una linea di separazione
Utilizzate una casella grafica.
^FO0,40^GB540,2,2^FSdisegna una linea orizzontale sottile larga 540 punti.
Anteprima e test prima della stampa¶
Avete due modi semplici per verificare un design prima di utilizzare etichette reali:
In Gem Logic: ogni volta che salvate, un’immagine di anteprima dell’etichetta appare sotto il campo di design. Utilizzatela come ciclo di feedback principale.
Online: incolla il tuo ZPL nel visualizzatore Labelary gratuito per vedere un’anteprima istantanea con diverse dimensioni di etichetta. (Sostituisci prima le
{variables}con del testo di esempio, poiché Labelary non conosce i tuoi dati prodotto.)
Se un’etichetta reale appare errata — testo tagliato, un codice QR che non si legge, dimensione errata — consultate la sezione etichette di Risoluzione dei problemi.
Riferimento rapido dei comandi¶
Comando |
Cosa fa |
|---|---|
|
Inizio / fine dell’etichetta. Tutto si trova tra questi due comandi. |
|
Larghezza di stampa in punti. |
|
Lunghezza etichetta (altezza) in punti. |
|
Label home — il punto di origine (di solito |
|
Field origin — posizionare l’elemento successivo a x,y. |
|
Impostare l’altezza del carattere predefinita ( |
|
Field data — il contenuto da stampare — chiuso da un separatore di campo. |
|
Commento — ignorato dalla stampante. Non può contenere |
|
Media darkness (intensità di stampa). Più alto significa più scuro. |
|
Codice QR; l’ultimo numero è la dimensione. I dati iniziano con |
|
Barcode Code 128; |
|
Disegna un riquadro o una linea (larghezza, altezza, spessore in punti). |
|
Codifica dei caratteri, in modo che simboli come |
Per il linguaggio completo, Zebra pubblica una guida completa ai comandi ZPL, ma i comandi sopra riportati coprono quasi ogni etichetta prodotto.