zplCloud Blog
SVG in TTF: icone come font di stampante invece di grafiche pesanti
^A@N,50,50,E:MYICONS.TTF - un riferimento a un glifo per etichetta invece di un blocco ^GFA da 10 KB.
Quanto costa una grafica su ogni singola etichetta
La maggior parte delle etichette porta un logo o un insieme di pittogrammi. L'opzione predefinita è esportare ciascuno come immagine raster e incorporarlo nello ZPL come blocco ^GFA. Funziona, ed è costoso in tre modi contemporaneamente.
Payload. Un ^GFA è un bitmap monocromatico, un bit per punto, trasmesso in hex. La matematica è semplice:
byte ≈ (larghezza_dots × altezza_dots) / 8 × 2 (÷8 = bit→byte, ×2 = codifica hex)
Un logo modesto di 200 × 200 dots - circa 25 × 25 mm a 203 dpi - è 200 × 200 / 8 = 5 000 byte di bitmap, cioè circa 10 000 caratteri di hex nel flusso di dati. Su ogni etichetta. Lo stesso logo a 300 dpi che copre la stessa area fisica è 295 × 295 dots ≈ 21 800 caratteri.
Qualità. Un bitmap è fissato alla risoluzione per cui è stato generato. Stampalo più grande, o sposta il design su una stampante a 300 o 600 dpi, e viene ricampionato - bordi morbidi esattamente sull'elemento che rappresenta il tuo marchio.
Velocità. La stampante riceve, decodifica e rasterizza la grafica su ogni etichetta. Il testo lo disegna e basta.
Un font è una libreria di glifi che la stampante sa già disegnare
L'editor SVG → TTF prende le tue icone SVG e costruisce un unico font TrueType. Ogni icona diventa un glifo su un code point di uso privato (U+E000, U+E001, …) - l'intervallo Unicode riservato esattamente a questo.
Quel font viene caricato nella flash della stampante una volta, es. come E:MYICONS.TTF, dalla scheda Zebra Fonts del designer. Dopodiché un'etichetta referenzia un glifo:
^XA
^FO50,50^A@N,50,50,E:MYICONS.TTF^FD^FS
^XZ
Nota l'ordine dei parametri: ^A@ prende orientamento, altezza, larghezza e poi il percorso del font. ^A@N,E:MYICONS.TTF - orientamento seguito direttamente dal percorso - non è ZPL valido; la stampante ricadrà su un font predefinito e passerai un pomeriggio a chiederti perché l'icona è una lettera.
Una volta che il font è residente, ^A@N,50,50,E:MYICONS.TTF può essere abbreviato in ^A@N,50,50 per i campi successivi della stessa etichetta - la stampante mantiene l'ultima selezione di font ^A@.
I numeri, con ipotesi dichiarate
Immagine ^GFA | Font TTF di stampante | |
|---|---|---|
| Ipotesi | icona 200 × 200 dots, monocromatica, codificata in hex | font da 3 glifi, ~3 KB |
| Per etichetta | ≈ 10 000 B | ≈ 125 B (un campo con un glifo) |
| Caricato | con ogni etichetta | una volta, ~3 KB in totale |
| 10 000 etichette | ≈ 100 MB | ≈ 1,25 MB + 3 KB |
| 100 000 etichette | ≈ 1 GB | ≈ 12,5 MB + 3 KB |
Questa è una riduzione di 80× dei byte trasmessi per quell'elemento. Su un collegamento seriale a 115 200 baud o un tunnel Weblink occupato, quella differenza è la differenza tra una coda che si svuota e una coda che cresce.
Il ridimensionamento è gratuito: lo stesso glifo in ^A@N,20,20 o ^A@N,120,120 viene renderizzato dai contorni vettoriali dal motore di font della stampante - nitido a 203, 300 e 600 dpi.
La flash è finita - controlla prima di caricare
La memoria della stampante non è generosa, soprattutto sui vecchi modelli da scrivania. Una GK420 ha pochi megabyte in totale. Prima di inviare un font, conosci la sua dimensione:
- Un font di icone con una manciata di glifi: KB a una cifra. Mai un problema.
- Un font di testo Unicode completo è un altro animale - il font Unicode ZPLCloud è di 11 MB, la sua variante slim 7 MB. Questi non stanno su una GK420 e sono pensati per stampanti con flash vera.
- Interroga lo spazio libero con
! U1 getvar "memory.flash_free"prima di un rollout su tutta la flotta.
Flusso di lavoro
1. Trascina gli SVG nell'editor SVG → TTF. Ciascuno diventa un glifo su un code point PUA; l'editor mostra l'assegnazione (U+E000 e oltre).
2. Costruisci il font e caricalo sulle stampanti che scegli - un'azione, tutta la flotta.
3. Nel designer, apri la libreria icone e trascina l'icona sul canvas. Atterra come elemento glifo già legato al code point e al percorso di font giusti. Niente codici hex digitati a mano, niente blocchi ^GF da mantenere.
Una nuova icona o un logo cambiato sono gli stessi tre passaggi: ricostruisci il font, invialo, fatto. I design delle etichette non cambiano - referenziano un code point, e il code point ora disegna la nuova grafica.
Quando una grafica è ancora la risposta giusta
I font sono contorni monocromatici. Usa ^GFA per:
- foto, gradienti o qualsiasi cosa con livelli di grigio (che una stampante termica ditherizza comunque),
- grafiche una tantum che cambiano per etichetta - una mappa per spedizione, un'immagine di firma,
- grafica che ricevi come bitmap e non puoi vettorizzare pulitamente.
Per loghi, simboli di pericolo, pittogrammi di trasporto e icone UI ricorrenti - la grande maggioranza di ciò che c'è davvero su un'etichetta - la via del font è più piccola, più nitida e più veloce.
SVG che si converte pulitamente
La conversione trasforma i path in contorni di glifo. Due regole fanno risparmiare tempo:
- Converti i tratti in contorni prima di esportare l'SVG. Un glifo è una forma riempita; un tratto di 1 px non ha spessore per un motore di font.
- Appiattisci il testo in path. Gli elementi di testo dentro l'SVG dipendono da un font che il convertitore non ha motivo di avere.