Zebra Printer Printing Boxes Instead of Text: Causes and Fixes

October 4, 2026 · 3 min read · By ZPLFONTS.com

troubleshootingfonts

You send a label, and where the text should be there’s a row of little squares. It’s alarming the first time, but it’s one of the more diagnosable font problems. The printer is telling you something specific: it found a character it can’t draw.

What the boxes mean

A box, sometimes called a tofu block, is the printer’s placeholder for “I was asked for this character and the font doesn’t have a picture for it”. The printer isn’t broken and the font isn’t necessarily broken. There’s simply a mismatch between the character it was asked to print and the characters the font contains.

That gives you two main suspects. Either the font really doesn’t include the character, or the printer is interpreting your data differently than you intended, so it’s asking for the wrong character.

Step one: see what survives

Print the same line twice, once with plain ASCII and once with your real text, using the same font.

^XA
^CI28
^FO40,40^A0N,40,40^FDABC 123^FS
^FO40,100^A0N,40,40^FDYour real text here^FS
^XZ

If the plain line prints correctly and the real one doesn’t, the font works and the issue is the characters. If both lines fail, the font isn’t loading properly, and you’re dealing with a different problem.

Cause one: the font lacks the glyph

This is the most common reason. The built-in fonts cover Western European text and not much more. Ask font 0 for Chinese, Arabic, Devanagari or Thai, and you’ll get boxes. Even within Latin text, some characters, like certain Polish or Czech letters or less common symbols, may be missing.

The fix is to use a font that has them. Download a Unicode TrueType font, such as one from the Noto family, and print with ^A@. The install guide walks through it. Remember that a font covers only certain scripts, and a font that has Cyrillic may not have Greek.

Cause two: the wrong character set

If the character looks like it should exist in your font, the printer might be reading your bytes differently. The ^CI command picks the interpretation. If your data is UTF-8 and the printer is set to a single-byte code page, multi-byte characters turn into several wrong characters, some of which may be boxes. Set ^CI28 for UTF-8 and make sure it comes after ^XA. The UTF-8 checklist takes you through the rest of the path.

Cause three: the font isn’t loaded

If you call a downloaded font and the printer can’t find it, you may get the default font, which then lacks the characters. The symptom is boxes, but the cause is a missing or mislabeled file. Print the directory with ^XA^WD*:*.*^XZ and check that your font is listed, spelled the same way and on the drive you named. If it was there yesterday and isn’t now, see font disappears after reboot.

Cause four: damaged data

Sometimes the text itself has been altered on the way, by a program that replaced unusual characters with something else, or a file saved in the wrong encoding. A byte-order mark at the start of the file can cause odd behaviour too. Send a clean test file, typed fresh, straight to the printer to separate data problems from printer problems.

Cause five: a script that needs shaping

For Arabic or Hindi, boxes aren’t the only possible symptom. You might get characters that exist but don’t join, or are in the wrong order. That’s not a glyph problem but a shaping one, and the reliable cure is to print the text as a graphic. Read how to print Hindi and Arabic on Zebra labels.

A short decision path

If ASCII fails too, the font isn’t loading. Check the directory and the file name. If only special characters fail, check ^CI. If ^CI is right, check the font’s coverage. If coverage is right, check the data path. Work through them in that order and you’ll find the problem within a handful of test labels.

The nuclear option

If you’re out of time, render the text as an image. The text-to-graphic tool uses your computer’s fonts, so it can draw anything your screen can, and the printer just prints dots. It’s less elegant than real text, and it’s not editable, but it removes every font and encoding variable at once.

For the full diagnostic walk-through with a table of symptoms, see font not printing or showing blocks, and for character set values, Unicode and code pages.

All articles