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.

4 min di lettura zplCloud Team

Quanto costa una grafica su ogni singola etichetta

Icone SVG compilate in un font TrueType su una stampante Zebra invece di un'immagine ^GFA per 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 ^GFAFont TTF di stampante
Ipotesiicona 200 × 200 dots, monocromatica, codificata in hexfont da 3 glifi, ~3 KB
Per etichetta≈ 10 000 B≈ 125 B (un campo con un glifo)
Caricatocon ogni etichettauna 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.

Correlati

Altri articoli