ZPL Code128 Subset switching - is Automatic mode enough ?

In the attached except from the ZPL Programmers manual, it shows both manual commands to switch between subsets A,B, and C. I understand the reason for switching between these sets but I'm unsure if it's ok just to use Automatic mode and let the printer determine when to switch, or does the presence of manual Subset switching invocation mean that it might result in a better result to do it manually ?

Text block with word wrap

I have the following line of code:

^FO20,525,0^A0N,36,40^TBN,700,600^FH^FD_22There_27s a saying. If you want someone to love you forever, buy a dog, feed it and keep it around._22^FS

Which on the emulator http://labelary.com/viewer.html shows up correctly but when I print to the actual device there is no word wrap. THe device is the 2054A

ZPL questions

I am new to the ZPL language and have been working on a label for a customer but have a couple of basic questions.

1) I need to set up a fixed size text block and in there there text will change and can be quite long so I need to have line breaks I presume. Are there any samples of this?

2) One of the spaces on our label is for the customer name. However, what if a name is really long, can I reduce the font to fit the name on the fly?


Bold text in ^FB


I need to write long text with line breaks and I use ^FB command, some of words I need to mark as bold. But ^FB command it’s not supporting spaces in line breaks, in documentation it says "Normal carriage returns, line feeds, and word spaces at line breaks are discarded.", so it's not working (see example on attached screenshots)

Is there workarraound for this issue?


QR Code Size and Tesla Requirements

Zebra has been very helpful in the past and I'm hoping your team can resolve this long-standing restriction.

I've read through previous questions from other Zebra users about the ZPL limitation of QR Code expansion only being 1-10. Meanwhile, a company like Tesla is requiring a QR Code closer to 28-32 in expansion. Previous suggested solutions seem to focus on tricking the printer regarding dpi, etc.

This is not a solution.

Issue with converting the Base64String to ZPL command

We have the Label in Base64String format stored in our DB/Table. Please refer “Base64String_LabelData.Txt” in the attachment.
We are converting this Base64 string to a ZPL command (by first converting Base64 string to a monochrome/.bmp Image, and then converting that image to the ZPL command).
Please refer “ZPLCommand_LabelData.txt” for the ZPL command output. You can paste that in online ZPL viewer.

ZPL - Documentation Error

Page 721 of the SGD Printer Commands section of the ZPL 2, ZBI2, Set-Get-Do, Mirror, WML Programming Guide P1099958-002 published August 26, 2019 in the example Listed under SetVar

It repeats the content from the device.pause but it's pretty out of context, and takes inference to understand that device.pause and device.unpause are 2 separate commands.

Quickly reading this caused me to think that the SGD command device.pause worked to both pause and un-pause a printer.

The example should read something similar to the following: