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

c# Zebra Printer SDK: Convert ZPL to EPL2

我正在开发一个在 Zebra 打印机上打印标签的小应用程序,为此我使用了 ZPL 语言和 Zebra Printer 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 相似,我想打印方法一定相似,这就是为什么我正在寻找编写与上述字符串相同类型的字符串并调整我的方法的原因。

感谢阅读!

所以!借助于:

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

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 代码可以正常工作!)。