Search code examples
zebra-printerszplzpl-ii

ZPL fieldblock ^FB for unicode fonts


I am using ZQ520, its already supports Unicode and I am loading the font as follows:

^XA ^CWZ,E:TT0003M_.FNT^FS^XZ 

I can use the font to print Arabic as follows:

^FO100,50^CI28^AZN,0,25^FD ARABIC TEXT HERE ^FS

It works fine but when I use ^FB with ^FO, the Arabic letters get messed up and gets separated (In Arabic, they are connected), here an example:

^FO100,50^FB200,,,R,^CI28^AZN,0,25^FD ARABIC TEXT HERE^FS 

so it seems that ^FB does not support the Unicode font. on page 187 of the manual its mention this

The ^FB command does not support complex text. For complex text support, use ^TB.

And 179

The Field Block (^FB) command cannot support the large TrueType fonts.

Is there a way around this? Because Arabic is right to left, so I am trying to make the text right aligned and multi-line as some strings are long.


Solution

  • I managed to print out word wrapping Arabic text using ^TB using the following code. It may be useful to adapt for your own purposes.

    ^XA^LRN^CI28^CWZ,E:TT0003M_.FNT^FS
    ^FO600,10,2
    ^AZN,50,40
    ^TBN,600,100
    ^FH
    ^FD
    arabic text here
    ^FS
    ^PQ1
    ^XZ
    

    Useful links:

    TB command (some extra info compared to below link): https://support.zebra.com/cpws/docs/zpl/TB_Command.pdf

    Please note that it states the ^TB command must be issued after any ^Ax (font selection) command

    ZPL Manual: https://www.zebra.com/content/dam/zebra/manuals/en-us/software/zpl-zbi2-pm-en.pdf