android 打印机指令集,热敏打印机常用指令集
热敏打印机常用指令集
初始化打印机: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)
android 打印机指令集,热敏打印机常用指令集相关推荐
- oracle rownum left join,SQL常用指令集(Oracle)
1. Select rownum(oracle) top(mysql): 用于规定返回指定数目的值 Where roenum < number 2. Like 用于在where子句搜索指定模式 ...
- MIPS指令集的常用指令分类和相关解释
MIPS指令集的常用指令分类和相关解释 MIPS 一些基本概念 MIPS指令集的六种指令格式 R型指令: I型计算类指令 I型取数类指令: I型条件判断类指令: J型指令: MIPS指令集的常用指令 ...
- ARM 指令集 和 Thumb 指令集
From:https://gitee.com/lsliushuang/ASM/blob/master/arm汇编.txt ARM 汇编指令集汇总:https://blog.csdn.net/qq_40 ...
- ARM指令集 VS Thumb指令集
1 thumb指令集概述 为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集. Thumb指令集是ARM指令集的一个子集 ...
- android 布局 站位符,基于android布局中的常用占位符介绍
大家在做布局文件是肯定会遇到过下面的这种情况 填充出现问题,所以需要用到占位符规范填充 汉字常用占位符: android:layout_width="wrap_content" a ...
- Android手机系统adb常用的命令
adb常用的命令有哪些?小编今天为大家奉上Android手机系统adb常用的命令,内容如下: 要使用adb命令,手机需要打开USB debug. 安装软件 adb install apk文件名称 ...
- android studio怎么添加按钮,Android Studio 工具栏添加常用按钮
本文中 Android Studio 的版本为 android Studio 2.2 ,操作系统为 Windows,如有操作不同,可能是版本差异. 在工具栏中添加一些常用的按钮,如设置.DDMS,有利 ...
- c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...
本文主要向大家介绍了C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. using System; using System.Co ...
- ARM 指令集 VS Thumb 指令集
Thumb指令集 Thumb指令可以看做是ARM指令压缩形式的子集,是针对代码密度[1]的问题而提出的,它具有16为的代码密度.Thumb不是一个完整的体系结构,不能指望处理程序只执行Thumb指令而 ...
最新文章
- nohup 和后台运行符号
- Nginx代理功能与负载均衡详解
- OpenCV特征描述Feature Description
- PHP字符串替换函数选择
- servlet怎么接受请求_谁再问Servlet的问题,我就亲自上门来教学了
- NetApp SE 实验室报告:SAN Boot with VMware ESX 3.0.0
- Java实现消息发送
- python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法
- 最不靠谱CEO,一句话让公司损失上千亿元
- 电脑桌面游戏_二次元游戏的高人气角色,不管男女都有一个特点,是巧合吗?...
- 扩充你的工具箱 - 大行文件的处理
- 向SourceView增加垂直行号标注
- 一步一步asp.net_删除模块设计
- Python str转为list list转为str
- [转] Node.js 服务端实践之 GraphQL 初探
- 闹钟函数alarm()的解释与实践
- mysql人像伴随模型_还不了解MySQL跨行事务模型吗?看完这篇你也就差不多了!...
- 纺织企业举步维艰,小微纺织企业该如何做?
- 所有人体胸部和下半身各部位的英语单词
- python——自动化测试——API接口测试