打印机编程手册命令原理解析
来源:互联网 发布:编程来回打括号好烦 编辑:程序博客网 时间:2024/06/11 19:38
最近在公司使用打印机编程手册指令对成品进行测试检测,对打印命令需要深入理解,才能更好掌握它的原理和使用。
相关打印机的打印指令/编程手册可以在网络上找到茫茫多的资源。
像类似LF ESC开头的,并不是代表字符串,他们都是ASCII码表里排名靠前的控制字符,通过套接字传送的数据是流,而流的本质是一个个的字节,所以这些命令中,一个符号代表一个字节,而字节的值在每条命令的详解里面有参考值。
可以对照ASCII码表对照,比如LF在第10位,十六进制是0x0A,是换行键的意思;ESC在27位,十六进制0x1B,是换码(溢出)的意思。
比如ESC ! 选择打印模式;ESC和!都是ASCII码的值。
ASCII码 ESC ! n
十六进制码 1B 21 n
十进制码 27 33 n
主要变化是n,n是一个数字,在0-255之间取得变化,它这里有8个位(刚好一个字节)可以设置,每个位的1/0代表开关的开启和关闭,比如要设置加粗,那么n的第三位应该是1也就是2^3=8,十六进制是0x08,所以整个命令下来就是0x1B,0x21,0x08。
知道了原理,可以把整个编程手册的指令融会理解。
把指令发送给打印机,打印机通过socket来提供服务,可以直接用socket发送指令。(相关socket网络编程会在另外文章更新)
通过socket的流来发送指令,所以只能把字符串转换为字节流,再传送给打印机。不同字符,比如中文,在转换字节流的时候需要设置不同的编码。
以上的命令格式在小票热敏打印机一般是通用的,不同的是提供打印服务的方式,有的通过网络来提供套接字服务,有些通过COM串口来提供服务,不同的服务都可以转化为流来处理,所以本质上是差不多的。
除此之外,企业可根据自身需求设计windows动态链接库测试界面,可以在打印机连接USB后直接通过电脑操作打印测试,高效便捷。
以下整理打印机常用的ASCII码对照
0X04:EOT:传输结束
0x05:ENQ:请求
0x09:HT:水平制表符
0x0A:LF:换行键
0x10:DLE:数据链路转义
0x11-14:DC1-4:设备控制1-4
0x1B:ESC:换码(溢出)
0x1C:FS:文件分隔符
0x1D:GS:分组符
0x1E:RS:记录分隔符
0x20:SP :空格
在网上看到有相关的C#打印机ESC指令,可以用作学习借鉴。
https://www.cnblogs.com/rinack/p/5227133.html
- 打印机编程手册命令原理解析
- 打印机原理
- 打印机命令
- 打印机编程
- 打印机编程
- 打印机编程
- SQL*PLUS命令 sql编程手册
- SQL*PLUS命令 sql编程手册
- SQL*PLUS命令 sql编程手册
- 打印机结构及原理
- 打印机外设通信 原理
- 热敏打印机工作原理
- 打印机的工作原理
- 热敏打印机原理
- 打印机状态码解析
- 打印机相关命令
- linux usb 打印机命令
- Zebra 打印机校准命令
- Hystrix文档-实现原理
- Java生成验证码
- mongodb笔记01(更新删除文档)
- webservice传输文件
- 使用vue-i18n实现多语言
- 打印机编程手册命令原理解析
- Thinking in Java:第九章-接口
- Bentley.PULS.XM.V8.9.0.28 数字管道脉动分析
- 对5种主流编程语言的吐槽
- QCustomPlot使用手册
- 微信小程序基础知识笔记
- UUID.randomUUID().toString()()够造随机UUID
- Unity 导出 Gradle 工程及问题 (Please select a keystore and a signing key!)
- git上传本地代码