我有一臺熱敏打印機。我正在重寫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