熱敏打印機常用指令集


熱敏打印機常用指令集
初始化打印機:Write(0x1b 0x40)
打印機實時狀態:
/*
功能:返回打印機狀態
參數:無
返回:
0 正常
1 線路不通
2 打印機故障
3 打印機缺紙
8 打印機紙將盡
*/
int GetPrintComStatus()
{
int ret = -1;

unsigned char str[3];
unsigned char res[50];
bool flag1=false;
bool flag2=false;
bool flag3=false;

memset(str,0x00,sizeof(str));
/*
* DLE EOT n 返回實時狀態
* n=1:傳輸打印機狀態
* n=2:傳輸離線狀態
* n=3:傳輸錯誤狀態
* n=4:傳輸紙卷傳感器狀態
*/
str[0] = 0x10;
str[1] = 0x04;
str[2] = 2;

ret = WritePort(str,3);
if(ret != 3)
return 1;
memset(res,0x00,sizeof(res));
if(ReadPort(res,1)<=0)
return 1;
if(res[0]&0x40||res[0]&0x04)
return 2;
if(res[0]==18)
flag2=true;

memset(str,0x00,sizeof(str));
str[0] = 0x10;
str[1] = 0x04;
str[2] = 3;
ret = WritePort(str,3);
if(ret != 3)
return 1;
memset( res,0x00,sizeof(res) );
if ( ReadPort(res,1)<=0 )
return 1;
if ( res[0]&0x80||res[0]&0x40||res[0]&0x08||res[0]&0x04 )
return 2;
if ( res[0]==18 )
flag1=true;

memset( str,0x00, sizeof(str));
str[0] = 0x10;
str[1] = 0x04;
str[2] = 4;

ret = WritePort(str,3);
if(ret != 3)
return 1;
memset(res,0x00,sizeof(res));
if ( ReadPort(res,1)<=0 )
return 1;
if(res[0]&0x60)
{
return 3; //缺紙
}
if(res[0]&0x0c)
{
return 8;//紙將盡
}
if(res[0]==18)
flag3=true;

if(flag1&&flag2&&flag3)
return 0;
else
return 1;
}

選擇標准模式:Write( 0x1b, 0x53)
打印條形碼:
int PrintBarCode(char *str)
{
int ret = -1;
int nlength;
unsigned char tmp[7];
memset(tmp,0x00,sizeof(tmp));
/*
* GS h n 選擇條碼高度
* n指定垂直方向點數,默認高度點數為n=162(十進制)
*/
tmp[0]=0x1d;
tmp[1]=0x68;
tmp[2]=0x3c;
WritePort(tmp,3);
memset(tmp,0x00,sizeof(tmp));
/*
* GS H n 選擇可識別字符的打印位置
* 在打印條碼時選擇打印可識別字符的位置
*/
tmp[0]=0x1d;
tmp[1]=0x48;
tmp[2]=0x0;
WritePort(tmp,3);
memset(tmp,0x00,sizeof(tmp));
/*
* GS w n 選擇條碼寬度
* 默認值n=3;n=2、3、4點寬度
*/
tmp[0]=0x1d;
tmp[1]=0x77;
tmp[2]=0x2;
WritePort(tmp,3);
memset(tmp,0x00,sizeof(tmp));
/*
* GS k m d1...dk/GS k m n d1...dn打印條碼
*/
tmp[0]=0x1d;
tmp[1]=0x6b;
tmp[2]=0x49;
tmp[3]=0x12;
tmp[4]=0x7b;
tmp[5]=0x41;
WritePort(tmp,6);
nlength = strlen(str);
ret = WritePort((unsigned char *)str,strlen(str));
if(ret == nlength)
return -1;

return 0;
}

切紙:Write(0x1b,0x69) 或 Write(0x1d,0x76,0x49) 或 Write(0x1d,0x56,0x42,0x00)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM