Published:
It surprises people the first time an incoming print job flips the printer from direct thermal to thermal transfer: why is that a format command at all? Because ZPL is a job language, not a printer configuration file — and that design choice cuts both ways.
The idea behind ^MT: the same format sent to any printer in
the fleet should produce the same physical label, and "does this label need
ribbon or not" is part of that description — a property of the label, not
of whichever machine happens to receive it.
One printer serving several label types from the same queue: a thermal-transfer product label followed by a direct-thermal shipping label. With the media type in the job, nobody walks to the printer between the two. That is the workflow the command was built for.
An ERP or middleware that emits ^MT unconditionally, into a
fleet standardised the other way. Now every job silently re-configures
printers that were already set correctly — and the symptom shows up far
from the cause: a printer "suddenly" asking for ribbon, media handling
changing between jobs, settings that do not stick.
Printers can be told to ignore format-side configuration commands. For the standardised-fleet case that is the right fix and the intended one, not a workaround. The price is that it is now a fleet setting: a future format that legitimately needs a different media type will also be ignored — silently. Write it down wherever your printer build is documented, because the person hit by that silence will be someone else.
^MT is not alone: darkness, print speed and media tracking
can also arrive job-side, with exactly the same trade-off — portability of
the format against authority of the fleet configuration. Deciding which
side owns each setting, and documenting the decision, is the actual fix;
the commands are just where the tension surfaces.
Two pipelines for the same label: a rendered PDF through a driver, or native ZPL to the printer. What each costs in speed, fidelity and support.
Using custom fonts in ZPLTwo ways to print your own font on a Zebra printer: embed it in every label, or upload it once and call it with ^A@. The difference and the limits.
Embed a ZPL Label Viewer in Your Own SiteShow rendered ZPL labels inside your own pages with one iframe — no server code, no libraries. How the embed works, the URL format, and its honest limits.
How to center text in ZPLZPL has no center command for plain text. Use a ^FB block with C justification, or measure the text width and compute the x position yourself.