zplCloud Blog
SVG a TTF: iconos como fuentes de impresora en lugar de gráficos pesados
^A@N,50,50,E:MYICONS.TTF - una referencia de glifo por etiqueta en lugar de un bloque ^GFA de 10 KB.
Lo que cuesta un gráfico en cada etiqueta
La mayoría de las etiquetas llevan un logotipo o un conjunto de pictogramas. La opción por defecto es exportar cada uno como imagen rasterizada e incrustarlo en el ZPL como bloque ^GFA. Funciona, y es caro en tres sentidos a la vez.
Payload. Un ^GFA es un mapa de bits monocromo, un bit por punto, transmitido como hex. La matemática es simple:
bytes ≈ (ancho_dots × alto_dots) / 8 × 2 (÷8 = bits→bytes, ×2 = codificación hex)
Un logotipo modesto de 200 × 200 dots - unos 25 × 25 mm a 203 dpi - son 200 × 200 / 8 = 5 000 bytes de mapa de bits, aproximadamente 10 000 caracteres de hex en el flujo de datos. En cada etiqueta. El mismo logotipo a 300 dpi cubriendo la misma área física son 295 × 295 dots ≈ 21 800 caracteres.
Calidad. Un mapa de bits está fijado a la resolución para la que se generó. Imprímelo más grande, o mueve el diseño a una impresora de 300 o 600 dpi, y se remuestrea - bordes suaves exactamente en el elemento que representa tu marca.
Velocidad. La impresora recibe, decodifica y rasteriza el gráfico en cada etiqueta. El texto simplemente lo dibuja.
Una fuente es una biblioteca de glifos que la impresora ya sabe dibujar
El editor SVG → TTF toma tus iconos SVG y construye una fuente TrueType. Cada icono se convierte en un glifo en un punto de código de uso privado (U+E000, U+E001, …) - el rango Unicode reservado precisamente para esto.
Esa fuente se sube a la memoria flash de la impresora una vez, p. ej. como E:MYICONS.TTF, desde la pestaña Zebra Fonts del diseñador. Después, una etiqueta referencia un glifo:
^XA
^FO50,50^A@N,50,50,E:MYICONS.TTF^FD^FS
^XZ
Observa el orden de los parámetros: ^A@ toma orientación, altura, anchura y luego la ruta de la fuente. ^A@N,E:MYICONS.TTF - orientación seguida directamente de la ruta - no es ZPL válido; la impresora recurrirá a una fuente por defecto y pasarás una tarde preguntándote por qué el icono es una letra.
Una vez que la fuente es residente, ^A@N,50,50,E:MYICONS.TTF se puede acortar a ^A@N,50,50 para campos posteriores de la misma etiqueta - la impresora mantiene la última selección de fuente ^A@.
Los números, con supuestos declarados
Imagen ^GFA | Fuente TTF de impresora | |
|---|---|---|
| Supuesto | icono de 200 × 200 dots, monocromo, codificado en hex | fuente de 3 glifos, ~3 KB |
| Por etiqueta | ≈ 10 000 B | ≈ 125 B (un campo con un glifo) |
| Subida | con cada etiqueta | una vez, ~3 KB en total |
| 10 000 etiquetas | ≈ 100 MB | ≈ 1.25 MB + 3 KB |
| 100 000 etiquetas | ≈ 1 GB | ≈ 12.5 MB + 3 KB |
Eso es una reducción de 80× en bytes transmitidos para ese elemento. En un enlace serie de 115 200 baudios o un túnel Weblink ocupado, esa diferencia es la diferencia entre una cola que drena y una cola que crece.
El escalado es gratis: el mismo glifo en ^A@N,20,20 o ^A@N,120,120 se renderiza desde los contornos vectoriales con el motor de fuentes de la impresora - nítido a 203, 300 y 600 dpi.
La flash es finita - comprueba antes de subir
La memoria de la impresora no es generosa, especialmente en los modelos de escritorio antiguos. Una GK420 tiene unos pocos megabytes en total. Antes de enviar una fuente, conoce su tamaño:
- Una fuente de iconos con un puñado de glifos: KB de un dígito. Nunca un problema.
- Una fuente de texto Unicode completa es otro animal - la fuente Unicode de ZPLCloud tiene 11 MB, su variante slim 7 MB. Esas no caben en una GK420 y están pensadas para impresoras con flash real.
- Consulta el espacio libre con
! U1 getvar "memory.flash_free"antes de un despliegue en toda la flota.
Flujo de trabajo
1. Arrastra los SVG al editor SVG → TTF. Cada uno se convierte en un glifo en un punto de código PUA; el editor muestra la asignación (U+E000 y siguientes).
2. Construye la fuente y súbela a las impresoras que elijas - una acción, toda la flota.
3. En el diseñador, abre la biblioteca de iconos y arrastra el icono al lienzo. Aterriza como elemento de glifo ya vinculado al punto de código y la ruta de fuente correctos. Sin códigos hex tecleados a mano, sin bloques ^GF que mantener.
Un icono nuevo o un logotipo cambiado son los mismos tres pasos: reconstruye la fuente, envíala, listo. Los diseños de etiquetas no cambian - referencian un punto de código, y el punto de código ahora dibuja el nuevo arte.
Cuándo un gráfico sigue siendo la respuesta correcta
Las fuentes son contornos monocromos. Usa ^GFA para:
- fotos, degradados o cualquier cosa con niveles de gris (que una impresora térmica difumina de todos modos),
- gráficos únicos que cambian por etiqueta - un mapa por envío, una imagen de firma,
- arte que recibes como mapa de bits y no puedes vectorizar limpiamente.
Para logotipos, símbolos de peligro, pictogramas de transporte e iconos de UI recurrentes - la gran mayoría de lo que realmente hay en una etiqueta - la ruta de la fuente es más pequeña, más nítida y más rápida.
SVG que se convierte limpiamente
La conversión convierte los paths en contornos de glifo. Dos reglas ahorran tiempo:
- Convierte los trazos a contornos antes de exportar el SVG. Un glifo es una forma rellena; un trazo de 1 px no tiene grosor para un motor de fuentes.
- Aplana el texto a paths. Los elementos de texto dentro del SVG dependen de una fuente que el conversor no tiene por qué tener.