我有一台热敏打印机。我正在重写SDK。 我正在使用pi4j库通过串口发送ESC / POS命令。 我的问题是我不知道如何将整数发送到打印机,因为pi4j库不接受整数
这是我的功能
public void printAndFeed(String str, int feed) throws IOException {
//escInit();
serial.write(str);
//output extra paper ESC d n
serial.write((char) 0x1B);
serial.write("d");
serial.write(feed);
}
错误就在这里
serial.write(feed);
命令参考:
ESC d n [名称]打印并输入n行[格式] ASCII ESC d n Hex 1B 64 n十进制27 100 n [范围]0≤n≤255[描述]打印数据 打印缓冲区并输入n行。 [注意]•此命令设置 将起始位置打印到行首。 •此命令 不影响ESC 2或ESC 3设置的行间距。•最大值 进纸量为1016 mm {40“}。如果纸张进给量为安装(n×线 间距)指定超过1016毫米{40“},打印机进纸 纸张只有1016毫米{40“}。[参考] ESC 2(默认线 间距),ESC 3(设置行间距)
pi4j参考 http://pi4j.com/apidocs/com/pi4j/io/ser ... e-char ...-
我试过这个: 代码可以接受:
char[] F = new char[]{0x1B,'d',11};
serial.write(F);
但它不接受此
char[] F = new char[]{0x1B,'d',feed};
printer.write(F);
答案 0 :(得分:1)
@ Yazan,@ Mike Harris非常感谢你的帮助。 我按照他们的建议将所有整数转换为字节 代码是(如果有人遇到这个并需要帮助)
int feed=11;
byte [] B=new byte[] {0x1B,'d',(byte)feed};
printer.write(B);