Vai al contenuto
Menu della documentazione

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.

app.prynt.it/northwind/operations/designer
Un'etichetta di spedizione GS1 progettata in Prynt: il canvas dell'etichetta in millimetri e dot, l'anteprima ZPL live generata dal motore con dati reali e le proprietà del testo selezionato.

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:

Valore del barcode · GS1-128 SSCC
"(00)" & COLLI.SSCC
Valore del barcode · GTIN, quantità, lotto
"(02)" & ARTICOLO.GTIN & "(37)" & ARTICOLO.QTA & "(10)" & ARTICOLO.LOTTO

Il 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

Un valore fisso non codificabile (lettere in un EAN, una cifra di controllo sbagliata) è segnalato in Problemi (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 ^PQ così 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_UNAVAILABLE significa che non è stato inviato nulla; PRINTER_SEND_FAILED che 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.

Genera le etichette
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 alla stampante
# 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.