c#Zebra打印机SDK:将ZPL转换为EPL2

时间:2019-08-01 13:51:31

标签: c# zebra-printers zpl epl

我正在开发一个小型应用程序,以便在Zebra打印机上打印标签,为此我使用了ZPL语言和Zebra打印机SDK软件包。

我的应用程序可以与我在TLP 2824 Plus上测试过的ZPL完全兼容,但是我发现实际使用的打印机是仅使用EPL语言的TLP 2844(毫无疑问,TLP 2824有缺陷,因此刚好适合测试)。

我的打印方法基于:https://github.com/Zebra/devtalks/blob/121317-LinkOS_CSharp/BasicWpfPrintApp/MainWindow.xaml.cs

我的方法检查语言并且只显示ZPL,所以我必须对其进行修改,但是我的主要问题是将字符串从ZPL切换为EPL。

这是我的ZPL代码:

^XA
^CFA,20
^FB456,1,0,C^FO0,50^FDAR_Ref^FS
^FB252,1,0,C^FO0,80^FDDate^FS
^FB660,1,0,C^FO0,80^FDPrix^FS

^FB456,1,0,C^FO0,138^FDAR_Ref^FS
^FB252,1,0,C^FO0,168^FDDate^FS
^FB660,1,0,C^FO0,168^FDPrix^FS

^FB456,1,0,C^FO0,226^FDAR_Ref^FS
^FB252,1,0,C^FO0,256^FDDate^FS
^FB660,1,0,C^FO0,256^FDPrix^FS

^FB456,1,0,C^FO0,314^FDAR_Ref^FS
^FB252,1,0,C^FO0,344^FDDate^FS
^FB660,1,0,C^FO0,344^FDPrix^FS
^CFA,15
^XZ

这里是viewer link来查看结果。

EPL似乎与ZPL相似,我想打印方法必须相似,这就是为什么我要编写与上面的字符串相同的字符串并适应我的方法的原因。

感谢您的阅读!

1 个答案:

答案 0 :(得分:0)

所以!在以下帮助下:

我设法获得了类似的东西:

N
q456
Q352,56
A186,20,0,4,1,1,N,"AR_Ref"
A86,50,0,4,1,1,N,"Date"
A314,50,0,4,1,1,N,"Prix"
P1,1

(标签除以4,仅是第一个示例显示的代码)。

我在EPL和ZPL中都将变量用于水平和垂直位置。我没有找到如何以EPL为中心的功能,因此我使用了老式的C#:

double textLength = myText.Length * 14; // 14 is the horizontal dots number for font 4
int pos = (int)Math.Floor((width - textLength) / 2 );

(对于所需位置,依此类推)

EPL似乎不喜欢€符号,而且我不明白如何使用oR命令执行此操作(也不知道如何使用同一命令来消除斜杠0,但我以后总能看到它,至少EPL代码有效!)。