我正嘗試在熱敏打印機上發送ESC/POS命令。但是,每當我發送熱敏打印機打印它們作爲文本,而不是執行它們作爲命令。我正在將這些命令寫入.prn文件,並且每當我執行lp命令來打印文件時,這些.prn文件也會被打印出來,但是作爲文本。如何將ESC/POS命令發送到Linux中的熱敏打印機
我嘗試以下方法在.PRN文件中寫入ESC/POS命令:
1) PRINT #1, CHR$(&H1D);"h";CHR$(80);
PRINT #1, CHR$(&H1D);"k";CHR$(2);
PRINT #1, "48508007";CHR$(0);
PRINT #1, CHR$(&HA);
PRINT #1, CHR$(&H1D);"k";CHR$(67);CHR$(12);
PRINT #1, "48508007";
2) <ESC>(0x1B) <L>(0x4C)
<GS>(0x1D) <k>(0x6B) 73 2 4 5 6 7 8 9 NUL
<FF>(0x0c)
3) <ESC L>
<GS k 73 2 4 5 6 7 8 9 NUL>
4) 「ESC L」 「GSķ73 2 4 5 6 7 8 9 NUL」 「FF」 我也嘗試用C程序作爲發送ESC/POS命令:
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
int main() {
int fd,ret;
char buf[] = "HELLO"
fd = open("/dev/bus/usb/003/007",O_WRONLY);
if(fd < 3) {
perror(open failed);
}
ret = write(fd,&buf,sizeof(buf));
if(ret == -1) {
perror("write failed");
}
}
在執行上面的代碼給出誤差爲:
write failed: invalid arguments
謝謝@abartek您的迴應。我嘗試過沒有成功。 – user3860949
我使用lp命令將該文件發送到打印機,該命令用於打印文件。這是向打印機發送命令的正確方式,或者有任何其他方法來執行此操作。此熱敏打印機使用USB端口連接到系統。 – user3860949
在C語言中是否有任何庫支持來執行此操作。 – user3860949