Text-to-Graphic Converter for ZPL (^GF)
Render text in any font or script on your computer and convert it to a ZPL ^GF graphic, so unsupported fonts and languages print exactly as shown.
Use this when the printer lacks the font, the glyphs, or the shaping for a script such as Arabic or Hindi. Your browser draws the text, and the result is converted into a monochrome bitmap in ^GF format. Nothing is uploaded; everything happens on your device.
Your ZPL
How to use the result
- Paste the
^GFAline into your label between^XAand^XZ. The generated block already includes^FOfor position. - Size is in dots, so choose it for your printer's DPI (see the size calculator).
- Graphics print exactly as drawn, but cannot be edited on the printer and are larger than text. A short line is typically a few hundred bytes to a few kilobytes.
- For dynamic text, regenerate the graphic in your application instead of hand-pasting it.
Background: language support, font not printing.
Why you'd turn text into a picture
Fonts on a label printer are fussy. The printer needs the font file, enough memory to hold it, the right character set and, for some languages, support for shaping that not every model has. Sometimes the simplest answer is to stop asking the printer to understand the text at all. Draw it on a computer, which has all the fonts and the shaping engine you need, then send the printer a picture. This tool does exactly that.
It suits three situations well. Text in scripts like Arabic and Hindi, where the printer might not join or reorder letters properly. Brand text in a font you can't or don't want to install. And fixed phrases, such as warnings in several languages, that never change. For more on the first case, read how to print Hindi and Arabic on Zebra labels.
Using the tool
Type your text, then choose a font. You can enter the name of any font installed on your computer, or upload a font file directly, which is handy for a brand typeface you don't have installed. Set the size in dots, which is what the printer will see. If the text is long, enter a maximum width and it wraps. Pick the alignment and, for Arabic or Hebrew, the right-to-left direction.
The threshold slider decides which shades become black and which become white. Printers can only print solid dots, so the preview shows the one-bit result, not the smooth version your screen would normally draw. If thin strokes are breaking up, lower the threshold a little. If bold strokes are filling in, raise it. For small text, a sturdy font helps more than any slider, so choose one with solid strokes.
The X and Y boxes set where the graphic goes on the label. The compression option shrinks the data a good deal, because most of a text image is empty white space, and it's worth leaving on unless you're debugging.
Using the output
Copy the generated ZPL, or download it as a file. It's a complete label with a ^GFA graphic field, and you can paste just the graphic line into a larger label. The live preview decodes it, so you can check placement, with the button below the output opening it for you.
Size matters because the graphic is made of dots. If you generate it for a 203 DPI printer and send it to a 300 DPI one, it prints smaller. Generate a separate version for each resolution, or work from millimetres using the size calculator. More on that in font sizes by DPI.
What happens inside
In case you're curious, or want to do the same in your own software, the steps are simple. The text is drawn on an invisible canvas with the chosen font. Each pixel is compared with the threshold and becomes black or white. The rows of dots are packed eight to a byte and written out in hexadecimal. Finally, runs of repeated characters are compressed using ZPL's own scheme: letters for repeat counts, a comma to fill the rest of a row with zeros, and a colon to repeat the previous row. Our article printing any font as a ^GF graphic goes through it with more detail.
Limits and trade-offs
A graphic is bigger than the same text, and it can't be edited on the printer. For labels with changing data, you'd generate a new image for every label, and that belongs in your software rather than in a manual tool. It's also fixed at one resolution, as noted above. If the printer can handle the font natively, real text is usually the better choice, and the guide to choosing a ZPL font can help you decide.
One more thing: the page uses your browser's text engine, so how complex scripts look depends on your system and font. Check the preview carefully, and have a native reader look at a printed sample before you roll anything out.
Questions
Does my text leave my computer? No. Everything happens in the browser, and uploaded fonts stay local.
Can I store the result on the printer? Yes, if you wrap it in a store command. See Zebra flash memory explained for how storage works.
Why does it look rough? Try a larger size or a bolder font, and check the threshold.
What if my printer can hold the font? Then see downloading TrueType fonts.
Last reviewed 2026-10-20