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.

4 min de leitura zplCloud Team

O que um gráfico custa em cada etiqueta

Ícones SVG compilados em uma fonte TrueType na impressora Zebra em vez de uma imagem ^GFA por 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 ^GFAFonte TTF de impressora
Premissaícone de 200 × 200 dots, monocromático, codificado em hexfonte de 3 glifos, ~3 KB
Por etiqueta≈ 10 000 B≈ 125 B (um campo com um glifo)
Carregadocom cada etiquetauma 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.

Relacionados

Mais artigos