我正在使用zebra rw420打印机从我的Android手机上打印账单,就像图像一样。
当我尝试打印标签时,它工作正常。 但是当我尝试在行式打印模式下打印时,它会打印出空白。 我正在使用的代码是
String cpclConfigLabel = "! U1 setvar {0} {1}, \"device.languages\", \"line_print\"\r\n"
+ "!U1 SETLP 5 2 46\r\n"
+ "AURORA'S FABRIC SHOP\r\n"
+ "!U1 SETLP 5 2 24\r\n" + "123 CASTLE DRIVE";
try {
configLabel = cpclConfigLabel.getBytes("US-ASCII");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
printerConnection.write(configLabel);
我正在使用Zebra sdk的开发者演示,
有谁能告诉我我的代码有什么问题?
答案 0 :(得分:2)
SDK并非设计用于在线模式下使用打印机。它会在检测到打印机处于线路模式时将其置于ZPL模式。
原因是SDK设置为允许状态检查,模板打印以及打印机处于线路模式时无法正常工作的一些其他功能。
将打印机更改为线路模式就像您尝试做的那样适用于打印部分,但如果您尝试使用状态命令或某些其他SDK功能,您将开始获得例外。
要在ZPL中打印可变长度的收据和发票,您可以执行以下操作:
将打印机介质模式设置为连续。
为收据标题,行和页脚创建模板。
2a上。每个模板都是固定高度,因此为每个模板设置“^ LL”命令。
2B。将模板的方向设置为反转“^ POI”
2B。每个模板都有可填写的变量
您基本上会使用模板而不是打印每一行
标题
行
行
...
行
页脚
答案 1 :(得分:1)
注意到一些语法错误: 第一行:删除“{0} {1}”和逗号。它应该是“!U1 setvar \”device.languages \“\”line_print \“\ r \ n”。 第二和第四行:在'!'之间插入一个空格和'U1'。