Etichette ZPL
Etichette per stampanti Zebra: formati e dpi, elementi, barcode GS1-128 e SSCC, anteprima, stampa di prova e ZPL tramite API.
Etichette articolo, etichette di spedizione con codice SSCC, cartellini prezzo e ubicazioni di magazzino si stampano di solito su stampanti termiche Zebra che parlano ZPL II. Per queste stampanti Prynt non produce un PDF: un template nel formato Etichetta ZPL genera il codice ZPL che la stampante esegue, con i font, i barcode e i QR Code della stampante stessa.

Perché ZPL
- Barcode e QR Code sono disegnati dalla stampante alla sua risoluzione nativa: nitidi e facili da leggere.
- Il codice è testo compatto, veloce da inviare e da stampare, anche per migliaia di etichette.
- Tutto il resto funziona come per i documenti: parametri, dataset, espressioni, traduzioni, draft, versioni e API.
Creare un'etichetta
In Template scegli Nuovo template, formato Etichetta ZPL, poi la risoluzione delle tue stampanti (203 dpi è la più comune; 300; 600) e il formato: 100 × 150, 100 × 60, 102 × 152 (4 × 6"), 102 × 51 (4 × 2"), 60 × 40, 50 × 30, 40 × 25 mm, oppure larghezza × altezza personalizzate. Il formato di un template non cambia mai: un'etichetta PDF e un'etichetta ZPL sono template diversi. Negli elenchi le etichette ZPL hanno il segno ZPL.
Formati, millimetri e dot
203 dpi8 dot/mm- La più comune. 1 dot = 0,125 mm; 100 mm = 800 dot.
300 dpi12 dot/mm- 1 dot ≈ 0,083 mm; 100 mm = 1.200 dot.
600 dpi24 dot/mm- 1 dot ≈ 0,042 mm; 100 mm = 2.400 dot.
- Posizioni e dimensioni sono in millimetri e diventano dot quando il codice viene generato; l'editor mostra entrambe le misure e sposta gli elementi solo di dot interi, così quello che vedi è quello che la stampante può fare.
- Alcune misure sono in dot perché è così che le intende la stampante: il modulo dei barcode (la barra più stretta), l'ingrandimento del QR, il modulo del Data Matrix, l'altezza delle righe del PDF417.
- Un template è progettato per una risoluzione. Un'etichetta fatta per 203 dpi esce più piccola su una stampante a 300 dpi. Per averle entrambe, clona il template e cambia Risoluzione nel clone: posizioni e moduli vengono convertiti così le misure in millimetri restano le stesse.
L'editor delle etichette
- L'etichetta è disegnata in scala sul suo supporto, con righelli in millimetri o in dot e una griglia in dot (1, 2, 4, 8, 12, 16 o 24). Lo zoom arriva all'800%.
- Selezione, spostamento, allineamento e scorciatoie sono quelli del Designer; le frecce spostano di 1 dot (Maiusc: 10 dot) e il menu del tasto destro ruota anche di 90°.
- Senza selezione, oppure con Impostazioni dell'etichetta, le proprietà sono quelle dell'etichetta: formato, risoluzione, dati, copie, colonne e impostazioni della stampante.
- Il canvas è un'approssimazione: i campi sono segnaposto e le larghezze dei testi sono stimate. L'anteprima ZPL mostra il codice vero disegnato, e la stampa di prova sulla stampante vera è il controllo finale.
Elementi
Testo^A ^FD- Testo con espressioni {{ }}, in un font della stampante: 0 · scalabile (da usare quasi sempre), i font bitmap A–H, oppure un font salvato sulla stampante (E:ARIAL.TTF). Stampa in negativo per il bianco su nero.
Testo a blocco^FB- Testo che va a capo in una larghezza, con righe massime, interlinea e allineamento.
Barcode^BC ^BE …- Code 128, GS1-128, EAN-13, EAN-8, UPC-A, UPC-E, Code 39, Code 93, "Interleaved 2 of 5" (ITF), Codabar.
QR Code^BQ- Ingrandimento 1–10, correzione d'errore L/M/Q/H. Sempre stampato diritto.
Data Matrix^BX- ECC 200, con l'opzione GS1.
PDF417^B7- Altezza delle righe, livello di sicurezza, colonne.
Riquadro, Linea, Ellisse, Diagonale^GB ^GE ^GD- Cornici, separatori, fasce piene (nere o bianche), angoli arrotondati.
Immagine^GFA- Un asset o un campo binario, convertito a un bit per dot con una soglia o la retinatura. Tieni le immagini piccole: viaggiano con ogni etichetta.
ZPL grezzocosì com'è- Comandi che l'editor non ha (taglierina ^MMC, …), relativi all'elemento. Non può contenere ^XA/^XZ.
Ogni elemento ha una posizione (l'angolo in alto a sinistra, come ^FO), una rotazione di 0°, 90°, 180° o 270°, un nome, Visibile se e un blocco. Ogni valore, fisso o dal database, viene codificato con ^FH: un valore che contiene ^XZ o ~JA stampa quei caratteri, non invia mai un comando alla stampante. Il testo è UTF-8 (^CI28), che richiede un firmware Zebra x.14 o successivo.
Barcode, GS1 e SSCC
Il valore di un barcode è un'espressione: un campo (ARTICOLO.EAN) o un testo fisso tra virgolette ("DEMO"). Altre proprietà: modulo in dot, rapporto barra larga/stretta (Code 39, ITF, Codabar), altezza delle barre, testo leggibile sopra, sotto o nessuno, e la cifra di controllo.
GS1-128 e SSCC
Scrivi i dati GS1 come (AI)dato(AI)dato…. Prynt controlla gli application identifier e le lunghezze, inserisce FNC1 dove serve, verifica la cifra di controllo di (00) SSCC, (01) e (02) GTIN (o la aggiunge, con Aggiungi la cifra di controllo) e stampa la riga leggibile con gli AI tra parentesi. Un'etichetta di spedizione SSCC è semplicemente:
"(00)" & COLLI.SSCC"(02)" & ARTICOLO.GTIN & "(37)" & ARTICOLO.QTA & "(10)" & ARTICOLO.LOTTOIl GS1 DataMatrix usa la stessa sintassi con l'opzione GS1. Per le etichette logistiche usa un modulo di 4 dot a 203 dpi (6 a 300 dpi) e lascia una zona di rispetto di almeno 10 moduli su entrambi i lati.
Valori non validi
BARCODE_VALUE_INVALID). Un valore dal database non codificabile viene stampato in chiaro al posto del barcode, con l'avviso BARCODE_INVALID nell'anteprima.Un'etichetta per record, copie, affiancate
- Dataset: l'etichetta si stampa una volta per ogni record di un dataset (una per variante articolo, una per collo), con filtro e ordinamento facoltativi; Nessuno stampa una sola etichetta. I dataset a un record (la ditta, la testata della spedizione) si possono usare su ogni etichetta.
- Copie: un'espressione intera valutata per record, scritta come
^PQcosì la stampante ripete l'etichetta senza riceverla di nuovo:Params.COPIE,COLLI.ETICHETTE. Vuoto = 1, 0 = il record non stampa. - Colonne (1–20) e Distanza, per supporti con più etichette affiancate: progetti un'etichetta e ogni colonna stampa il record successivo.
- Una generazione stampa al massimo 10.000 etichette, copie comprese. Nessun record significa nessuna etichetta.
Impostazioni della stampante
Contrasto~SD 0–30- Alzalo se la stampa è chiara o i barcode non si leggono; abbassalo se sbava.
Velocità^PR 1–14- Pollici al secondo: più lenta è più nitida.
Supporto^MT- Trasferimento termico (con nastro) o termico diretto.
Origine X, Y^LH- Sposta tutti i campi insieme, per correggere una stampa leggermente spostata.
Stampa^PO- Normale o capovolta.
Vuoto significa che il comando non viene scritto e vale l'impostazione della stampante. Larghezza, lunghezza, origine, orientamento e UTF-8 (^PW, ^LL, ^LH, ^PO, ^CI28) sono scritti in ogni etichetta, così un'etichetta non eredita mai le impostazioni del lavoro precedente.
Anteprima e codice ZPL
- Anteprima ZPL (F5 o Aggiorna; Automatico aggiorna dopo ogni modifica): il server genera il codice con il motore vero, dalla definizione anche non salvata e dai valori di prova dei parametri, e lo disegna a 1 pixel per dot. Scegli 5, 10, 20 o 50 etichette e lo zoom; avvisi ed errori portano all'elemento.
- Codice ZPL: esattamente ciò che riceve la stampante, evidenziato, con Copia e il download .zpl.
L'anteprima è un emulatore: il font scalabile è disegnato con un font condensato simile, quindi le larghezze dei testi possono differire di circa il 10%, e i font salvati sulla stampante non sono disponibili. Tieni testi e barcode a 3–4 mm dai bordi e controlla i barcode con uno scanner su una stampa di prova.
Importare un file ZPL esistente
Importa ZPL… trasforma file .zpl o .prn (ZebraDesigner, un vecchio gestionale, scritti a mano; fino a 2 MB) in elementi modificabili: scegli la risoluzione per cui il file è stato scritto, Sostituisci l'etichetta oppure Aggiungi gli elementi, Analizza per vedere cosa viene riconosciuto, poi Importa. Testi, barcode, codici 2D e forme diventano elementi; grafiche e comandi che l'editor non ha diventano ZPL grezzo nella stessa posizione, quindi stampano uguale. I testi importati sono fissi: sostituiscili con {{DATASET.CAMPO}} per renderli variabili.
Stampa di prova
- Dentro Prynt Desktop, Stampa di prova offre Questo computer: l'etichetta va a una Zebra con una coda di Windows, a una stampante di rete configurata nell'app o a un indirizzo della tua LAN (porta 9100–9109).
- Stampante di prova del server invia l'etichetta dal server di Prynt a una stampante configurata per nome sul server; è disponibile solo dove queste stampanti sono configurate e raggiungibili.
- Il codice è generato come l'anteprima e inviato una volta sola, senza nuovi tentativi:
PRINTER_UNAVAILABLEsignifica che non è stato inviato nulla;PRINTER_SEND_FAILEDche alcune etichette potrebbero essere uscite. Al massimo 50 etichette per stampa di prova del server.
Stampare tramite API
Genera un'etichetta pubblicata come qualsiasi template. La risposta è il codice ZPL, application/zpl in UTF-8, con il numero di etichette in X-Label-Count. La tua applicazione lo invia alla stampante, di solito via TCP raw sulla porta 9100, oppure tramite una coda di Windows che accetta dati raw.
curl -X POST https://api.prynt.it/api/v1/render \ -H "Authorization: Bearer prynt_live_..." \ -H "Content-Type: application/json" \ -d '{ "template": "ETICHETTA_SSCC", "format": "zpl", "parameters": { "SPEDIZIONE_ID": 5120 } }' \ -o etichette.zpl # HTTP/1.1 200 OK# Content-Type: application/zpl; charset=utf-8# X-Document-Format: zpl# X-Label-Count: 12# Invia il codice a una Zebra della tua rete (TCP raw, porta 9100)nc 192.168.10.50 9100 < etichette.zpl"format": "zpl" è facoltativo (si usa il formato del template); chiedere pdf a un'etichetta, o zpl a un documento, fallisce con 422 FORMAT_MISMATCH. Un risultato vuoto (nessun record, o tutte le copie a 0) non restituisce etichette, con X-Label-Count: 0.
Problemi frequenti
Più piccola o più grandeformato- La risoluzione del template è diversa da quella della stampante: clonalo e cambia Risoluzione.
Spostataposizione- Calibra il supporto sulla stampante; per piccoli spostamenti usa Origine X/Y.
Chiara, barcode non lettiqualità- Contrasto più alto, Velocità più bassa, oppure un modulo più grande.
Testo oltre il bordotesto- Usa un Testo a blocco con larghezza e righe, e tronca i valori lunghi nell'espressione.
Accenti o € sbagliaticodifica- Firmware senza ^CI28 (UTF-8): aggiornalo a x.14 o successivo.
Barcode stampato come testovalore- Il valore non è codificabile per la simbologia (BARCODE_INVALID).
Logo mancanteimmagine- Codice asset sbagliato, immagine illeggibile, oppure un logo chiaro: alza la Soglia.