zplCloud Blog
SVG para TTF: ícones como fontes de impressora em vez de gráficos pesados
^A@N,50,50,E:MYICONS.TTF - uma referência de glifo por etiqueta em vez de um bloco ^GFA de 10 KB.
O que um gráfico custa em cada etiqueta
A maioria das etiquetas carrega um logotipo ou um conjunto de pictogramas. O padrão é exportar cada um como imagem raster e incorporá-lo ao ZPL como um bloco ^GFA. Funciona, e é caro de três maneiras ao mesmo tempo.
Payload. Um ^GFA é um bitmap monocromático, um bit por ponto, transmitido como hex. A matemática é simples:
bytes ≈ (largura_dots × altura_dots) / 8 × 2 (÷8 = bits→bytes, ×2 = codificação hex)
Um logotipo modesto de 200 × 200 dots - cerca de 25 × 25 mm a 203 dpi - é 200 × 200 / 8 = 5 000 bytes de bitmap, aproximadamente 10 000 caracteres de hex no fluxo de dados. Em cada etiqueta. O mesmo logotipo a 300 dpi cobrindo a mesma área física é 295 × 295 dots ≈ 21 800 caracteres.
Qualidade. Um bitmap é fixado à resolução para a qual foi gerado. Imprima-o maior, ou mova o design para uma impressora de 300 ou 600 dpi, e ele é reamostrado - bordas suaves exatamente no elemento que representa sua marca.
Velocidade. A impressora recebe, decodifica e rasteriza o gráfico em cada etiqueta. Texto ela apenas desenha.
Uma fonte é uma biblioteca de glifos que a impressora já sabe desenhar
O editor SVG → TTF pega seus ícones SVG e constrói uma fonte TrueType. Cada ícone vira um glifo em um code point de uso privado (U+E000, U+E001, …) - o intervalo Unicode reservado exatamente para isso.
Essa fonte é carregada na flash da impressora uma vez, ex. como E:MYICONS.TTF, pela aba Zebra Fonts do designer. Depois, uma etiqueta referencia um glifo:
^XA
^FO50,50^A@N,50,50,E:MYICONS.TTF^FD^FS
^XZ
Note a ordem dos parâmetros: ^A@ recebe orientação, altura, largura e depois o caminho da fonte. ^A@N,E:MYICONS.TTF - orientação seguida diretamente pelo caminho - não é ZPL válido; a impressora cairá para uma fonte padrão e você passará uma tarde se perguntando por que o ícone é uma letra.
Uma vez que a fonte é residente, ^A@N,50,50,E:MYICONS.TTF pode ser abreviado para ^A@N,50,50 para campos subsequentes na mesma etiqueta - a impressora mantém a última seleção de fonte ^A@.
Os números, com premissas declaradas
Imagem ^GFA | Fonte TTF de impressora | |
|---|---|---|
| Premissa | ícone de 200 × 200 dots, monocromático, codificado em hex | fonte de 3 glifos, ~3 KB |
| Por etiqueta | ≈ 10 000 B | ≈ 125 B (um campo com um glifo) |
| Carregado | com cada etiqueta | uma vez, ~3 KB no total |
| 10 000 etiquetas | ≈ 100 MB | ≈ 1,25 MB + 3 KB |
| 100 000 etiquetas | ≈ 1 GB | ≈ 12,5 MB + 3 KB |
Isso é uma redução de 80× nos bytes transmitidos para esse elemento. Em um link serial de 115 200 baud ou um túnel Weblink ocupado, essa diferença é a diferença entre uma fila que drena e uma fila que cresce.
O dimensionamento é gratuito: o mesmo glifo em ^A@N,20,20 ou ^A@N,120,120 é renderizado dos contornos vetoriais pelo mecanismo de fontes da impressora - nítido a 203, 300 e 600 dpi.
A flash é finita - verifique antes de carregar
A memória da impressora não é generosa, especialmente em modelos de mesa antigos. Uma GK420 tem alguns megabytes no total. Antes de enviar uma fonte, saiba seu tamanho:
- Uma fonte de ícones com alguns glifos: KB de um dígito. Nunca um problema.
- Uma fonte de texto Unicode completa é outro animal - a fonte Unicode ZPLCloud tem 11 MB, sua variante slim 7 MB. Elas não cabem em uma GK420 e são para impressoras com flash real.
- Consulte o espaço livre com
! U1 getvar "memory.flash_free"antes de um rollout em toda a frota.
Fluxo de trabalho
1. Solte os SVGs no editor SVG → TTF. Cada um vira um glifo em um code point PUA; o editor mostra a atribuição (U+E000 em diante).
2. Construa a fonte e carregue-a nas impressoras que você escolher - uma ação, frota inteira.
3. No designer, abra a biblioteca de ícones e arraste o ícone para a tela. Ele aterrissa como elemento glifo já vinculado ao code point e ao caminho de fonte corretos. Sem códigos hex digitados à mão, sem blocos ^GF para manter.
Um novo ícone ou um logotipo alterado são os mesmos três passos: reconstrua a fonte, envie-a, pronto. Os designs de etiquetas não mudam - eles referenciam um code point, e o code point agora desenha a nova arte.
Quando um gráfico ainda é a resposta certa
Fontes são contornos monocromáticos. Use ^GFA para:
- fotos, gradientes ou qualquer coisa com níveis de cinza (que uma impressora térmica ditheriza de qualquer forma),
- gráficos únicos que mudam por etiqueta - um mapa por envio, uma imagem de assinatura,
- arte que você recebe como bitmap e não consegue vetorizar limpa.
Para logotipos, símbolos de perigo, pictogramas de transporte e ícones de UI recorrentes - a grande maioria do que está realmente em uma etiqueta - a via da fonte é menor, mais nítida e mais rápida.
SVG que converte limpo
A conversão transforma paths em contornos de glifo. Duas regras economizam tempo:
- Converta traços em contornos antes de exportar o SVG. Um glifo é uma forma preenchida; um traço de 1 px não tem espessura para um mecanismo de fontes.
- Achate texto em paths. Elementos de texto dentro do SVG dependem de uma fonte que o conversor não tem motivo para ter.