我有一台热敏打印机。我正在重写SDK。 我正在使用pi4j库通过串口发送ESC/POS命令。 我的问题是我不知道如何发送整数到打印机,因为pi4j库不接受整数使用串口发送ESC/POS命令到打印机
这是我的功能
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 dn [名称]打印并输入n行[格式] ASCII ESC dn十六进制1B 64 n十进制数27 100 n [范围]0≤n≤255[描述]在打印缓冲区中打印 中的数据并送入n行。 [注释]•该命令将 打印起始位置设置到行首。 •此命令 不会影响ESC 2或ESC 3设置的行间距。•最大供纸量为1016 mm {40“}。如果纸张进纸量大于1016的支架(n×行 间距)毫米{40 “}指定,则打印机馈送 纸张仅1016毫米{40”}。[参考] ESC 2(默认线 间距),ESC 3(集线间距)
的pi4j参考 http://pi4j.com/apidocs/com/pi4j/io/ser ... E-焦炭...-
我这个尝试之一: 代码可以接受:
char[] F = new char[]{0x1B,'d',11};
serial.write(F);
,但它不接受这个
char[] F = new char[]{0x1B,'d',feed};
printer.write(F);
做了'写(如果有人碰到这个,需要帮助来)()'方法有一个接受'字节版本[] '? – Yazan
我同意@Yazan所说的:你应该发送字节(通过'OutputStream'类型的接口)而不是char/String(通过'Writer')。您发布到pi4j参考的链接已损坏,所以我无法确定这是否可行。 –
是作家接受字节[] ,这是工作链接:http://pi4j.com/apidocs/com/pi4j/io/serial/SerialDataWriter.html – Ammar