Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make text in ZPL label bold or underlined?

Due to a new EU law every food packaging label has to outline possible allergy-causing ingredients by either styling them bold or underlined in the ingredients list.

Currently I'm printing my labels via ZPL to zebra printers. I checked the ZPL manuel 1 & 2 and didn't find way how to print something in bold or underlined. Is there any way to do this?

Example: "Ingredients: water, sugar, milk, cheese, chocolate"

SHOULD BE NOW: "Ingredients: water, sugar, milk, cheese, chocolate"

My current label code for the ingredients is:

^CF0,15
^FO13,245
^FB530,2,,L,
^FH^FD__VAR_INGREDIENTS__
^FS

Thank you very much for your help,

Stefan

like image 938
Stee Avatar asked Dec 09 '14 10:12

Stee


People also ask

How do you underline in ZPL?

To underline, draw a graphics box below the required letters. This is relatively easy to calculate since the width of each letter is constant.

How do you draw a vertical line in ZPL?

There is not a separate command to draw a simple horizontal or vertical line, but the ^GB command can be used for this purpose by drawing a rectangle with height = 1 (horizontal line) or width = 1 (vertical line).

What are ZPL commands?

Zebra Programming Language (ZPL) is the command language used by all ZPL compatible printers. It is a command based language used by the printers as instructions to create the images printed on the labels.


2 Answers

To underline - use a monospaced font like AA,AC,AD,AF or AG

Use

^FO350,50^AGR^FDwhatever,milk,butter,salt^FS
^FO340,50^AGR^FD         ____ ______^FS

where the underline here is under milk and butter, you can adjust the offset by trimming the FO's X and Y positions by a few dots (10 X here)

On further investigation, I found

To bold

Use an old dot-matrix-printer trick. Still using fixed-pitch font, reprint the text but replacing the non-bold characters with spaces and adjust the X-position by 1 or 2 dots, reprint again with the Y-position adjusted by 1 o2 2 dots.

^FO350,50^AGR^FDwhatever,milk,butter,salt^FS
^FO348,50^AGR^FD         milk butter^FS
^FO350,52^AGR^FD         milk butter^FS

To underline, draw a graphics box below the required letters. This is relatively easy to calculate since the width of each letter is constant.

^FO345,490^GB0,160,4^FS
^FO345,690^GB0,240,4^FS

I tested using an A300 and 8"*3" labels, so I needed to rotate the text, hence some odd calculations. The manual does not show the ^FS, even in the examples but I found it was required.

like image 175
Magoo Avatar answered Oct 07 '22 04:10

Magoo


You could also try and make the font width grow a little:

^A0N,18,20

"^A" starts the font setting, where "0" is the embedded font, "N" the rotation, "18" the height and "20" the font width. The last one is 10 by default. So you're actually making the font wider, which results in a form of bold...

It may not affect the lines that are printed horizontally, but you will get a sense of bold.

(I know it's an 'old' topic, but I just wanted to share)

like image 8
Raphioly-San Avatar answered Oct 07 '22 02:10

Raphioly-San