zplCore.comzplCore.com

21Printer twin: will it print on this model?

A printer profile describes one model at one resolution: printhead width, print length, speed, memory, options, resident fonts and firmware. ZplPrinterTwin.Check reports what goes wrong on that model – fields cut off by the printhead, labels that are too long, commands the firmware does not know (^TB, ^CI28 …), missing options (cutter, peeler, RFID …), ^MTT on direct thermal models, fonts and memory. Built-in profiles cover ZD421d/t, ZD621, ZD220, GK420d, ZT411, ZT610, ZT230, ZQ510/ZQ520, ZQ630 (Plus) and a generic profile.

// using ZplCore.Twin;

var profile = PrinterProfiles.Get("ZQ510-203");          // id or alias; zplcore twin list
ZplTwinReport report = ZplPrinterTwin.Check(zpl, profile);
Console.WriteLine(report.ToText());  // ZPL5102 error (43:1): ^BC "ZE4711802026DE" … wider than the printhead …
List<byte[]> png = ZplPrinterTwin.RenderAnnotated(zpl, profile);  // clipped part hatched red

var withCutter = PrinterProfiles.Get("ZD421d-203").WithOptions(PrinterOption.Cutter);
ZplPrintEstimate estimate = ZplPrinterTwin.Estimate(zpl, withCutter);
Console.WriteLine(estimate.ToText()); // an estimate with all assumptions, not a measurement
zplcore twin list                                        # all profiles and aliases
zplcore twin check label.zpl --profile ZQ510-203 [--option cutter] [--firmware V…] [--annotate out.png]
zplcore twin estimate label.zpl --profile ZT411-203 [--link usb|ethernet|wifi|bt|serial]
zplcore check labels/ --printer ZD421d-203               # the same check in CI (see below)
zplcore serve --profile ZD421d-203 --option cutter        # the virtual printer behaves like the model

4 × 6″ label on a 72 mm mobile printer

Shipping label with a red hatched area on the right: everything beyond the 72 mm printhead is missing

Facts with sources – nothing guessed

Every profile value is verified (cited spec sheet or release notes, verbatim quote), derived (with a note) or unknown. A check that needs an unknown value reports ZPL5001 ("not checked") instead of a finding. Only the generic profile uses assumed defaults.

The print time estimate lists all assumptions (link throughput, speed without ^PR, gaps, backfeed) – an estimate, not a measurement.

Model names identify the hardware the data describes ("compatible with Zebra ZD421"). zplCore.com is not endorsed, sponsored or certified by Zebra Technologies.