Printing 使用Zebra打印机打印阿拉伯语文本[ZPL]

Printing 使用Zebra打印机打印阿拉伯语文本[ZPL],printing,zebra-printers,zpl,zpl-ii,Printing,Zebra Printers,Zpl,Zpl Ii,正如标题所述,是否有任何选项可以打印阿拉伯语内容ZPL打印机 尝试的方法是添加字体并开始打印 ^XA ^FX ^FR ^CF0,40^CI28^FO130,45^FH^FD محاكمة Font file^FS ^XZ 我的打印机上安装了TT0003M_uu2;.TTF字体,但当我尝试使用 ^XA^FO50,50^AE:TT0003M_.TTFN,50,50^FDمحاكمة^FS ^XZ 知道如何安装字体并使用ZPL语言打印阿拉伯文文本吗?^XA^CI28^CW1,E:TT0003M_3

正如标题所述,是否有任何选项可以打印阿拉伯语内容ZPL打印机

尝试的方法是添加字体并开始打印

^XA ^FX ^FR ^CF0,40^CI28^FO130,45^FH^FD محاكمة Font file^FS ^XZ
我的打印机上安装了TT0003M_uu2;.TTF字体,但当我尝试使用

^XA^FO50,50^AE:TT0003M_.TTFN,50,50^FDمحاكمة^FS ^XZ

知道如何安装字体并使用ZPL语言打印阿拉伯文文本吗?

^XA^CI28^CW1,E:TT0003M_389;.TTF^LL130^FS
^PA0,1,1,1
^FO50,50^A1N30,30^FD‏ ^FS
^XZ

更新此答案以匹配其他问题


在Zebra KB上也发现了这个问题-

也许现在回答你的问题已经太迟了:)但是我有同样的问题,我解决了,所以我想分享我的答案。


1-您可以使用或“调酒师设计器””来设计ZPL代码

2-使用这种字体,它支持阿拉伯字符

3-完成设计后,单击打印并选中“打印到文件”框,然后单击打印并保存扩展名为“.prn”的文件

4-使用记事本打开文件,您将看到ZPL代码

这是结果

或者说这里面的全部结果

6-如果您使用的是在线zpl查看器,例如,如果看不到阿拉伯字符,请不要担心,但是如果您想打印,则不会看到任何问题 7-不要尝试将文本置于中间,因为这样会剪切并反转阿拉伯文本

  • 默认值为字段文本“^FT”或带有x,x“^FTx,y^ft225224,如以下代码所示:

    ^FPH,3英尺225224^A@N,141141,TT0003M ^ FH ^ CI28 ^ FD ^ FD ^ FS ^ CI27

  • 如果您尝试将阿拉伯语文本居中、右或左,它将使用字段块“^FB“^FB383,1,75,C”,它与“^FT”不同,不支持阿拉伯语文本

    ^FPH,3英尺225224^A@N,141141,TT0003M ^ FB383,1,75,C^FH^CI28 ^ FD ^ FS ^ CI27

  • 您可以在本页的169中看到字段块属性

8-我不确定,但我非常努力,直到现在还没有办法将阿拉伯语文本居中

  • 但我有一个技巧,使用^FT width计算中心
使用此函数,它是c#

//Define page_width and font_width 

int page_width = 600;
int font_width = 18;
调用它将返回X位置(中间)的函数

这是函数,315=中间宽度或中心点

public string center_line(string arabic_text)

    {

        int text_width = (arabic_text.Length * font_width) / 2;
        decimal d = ((page_width - (text_width / 2)));
        int x = Convert.ToInt16(Math.Round(d)) ;
        x = 315 + (text_width / 2);
        return x.ToString();

    }
像这样使用它:

^FPH,3^FT"+FT_center+@",224^A@N,141,141,TT0003M_^FH\^CI28^FDمحاكمة^FS^CI27

我尝试了你的代码,但我仍然有问题显示阿拉伯字体。它显示???您确定该字体在系统上,并且该字体具有您需要的字符吗?您还需要非常小心,您使用的工具或代码是否正确处理unicode。是的,我确信打印机上有字体**您还需要非常小心使用的工具或代码是否正确处理unicode。**我正在使用Zebra设置实用程序——打开与打印机的通信来测试和设计Label。请参阅我在这里详细描述的问题
public string center_line(string arabic_text)

    {

        int text_width = (arabic_text.Length * font_width) / 2;
        decimal d = ((page_width - (text_width / 2)));
        int x = Convert.ToInt16(Math.Round(d)) ;
        x = 315 + (text_width / 2);
        return x.ToString();

    }
^FPH,3^FT"+FT_center+@",224^A@N,141,141,TT0003M_^FH\^CI28^FDمحاكمة^FS^CI27