ESC/POS命令集
切纸指令:
发送:十六进制:1B69
4.1 基本控制指令
4.1.1 ESC @
[名称] 初始化打印机
[格式]ASCII码 ESC @
十六进制码 1B 40
十进制码 27 64
[描述] 清除打印缓冲区中的数据,复位打印机打印参数到当打印机缺省参数。
[注意] * 不是完全恢复到出厂设置,用户参数设置(见三、JPM112打印机工具软件)不会被更改。
[例子] char SendStr[3]
SendStr[0] = 0x1B
SendStr[1] = 0x40
PrtSendData(SendStr, 2)
4.1.2 FF
[名称] 打印并走纸到下页首
[格式]ASCII码 FF
14/53
----------------------- 16-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
十六进制码 0C
十进制码 12
[描述] 将打印缓冲区中的数据全部打印出来并返回标准模式。
[注意] * 打印后,删除打印缓冲区中的数据。
* 该命令设置打印位置为行的起始点。
* 如果打印纸有预印刷黑标,则打印缓冲区中的数据后,走纸到黑标处,如果打印纸无黑标,则
走纸0.5m后停止,预印刷黑标的规范请见附录B.预印刷黑标说明。
[例子] char SendStr[2]
SendStr[0] = 0x0C
PrtSendData( SendStr, 1)
4.1.3 LF
[名称] 打印并换行
[格式] ASCII码 LF
十六进制码 0A
十进制码 10
[描述] 把打印缓冲区中的数据打印出来,并换行。
[注意] * 该命令把打印位置设置为行的开始位置。
[参考] CR
[例子] char SendStr[2]
SendStr[0]=’\n’//C语言中’\n’即为换行
PrtSendData( SendStr, 1)
4.1.4 CR
[名称] 打印并回车
[格式]ASCII码CR
十六进制码 0D
十进制码 13
[描述] 打印但不进纸。
[注意] * 打印结束后,将下一行的开始设定为打印起始位置。
[参考] LF
[例子] char SendStr[2]
SendStr[0]=’\r’//C语言中’\r’即为回车
PrtSendData(SendStr,1)
15/53
----------------------- 17-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
4.1.5 ESC J n
[名称] 打印并进纸
[格式]ASCII码 ESC J n
十六进制码 1B 4A n
十进制码27 74 n
[范围]0 ≤ n ≤ 255
[描述] 打印输出打印缓冲区中的数据,并进纸n个 垂直点距。
[注意] * 打印结束后,将下一行的开始设定为打印起始位置。
* 一个垂直点距为0.33mm,以下同。
[参考] ESC d
[例子] char SendStr[4]
SendStr[0] = 0x1B
SendStr[1] = ’J’
SendStr[2] = 3
PrtSendData( SendStr, 3)//走纸1mm
4.1.6 ESC d n
[名称] 打印并进纸n 行
[格式]ASCII码 ESC d n
十六进制码 1B 64 n
十进制码27 100 n
[范围]0 ≤ n ≤ 255
[描述] 打印打印缓冲区中的数据并进纸n字符行。
[注意] * 该命令设置打印起始位置为行起点。
[参考] ESC J
[例子] char SendStr[4]
SendStr[0] = 0x1B
SendStr[1] = ’d’
SendStr[2] = 2
PrtSendData( SendStr, 3)//走纸2行
4.1.7 HT
[名称] 移动打印位置到下一个水平制表位置
[格式] ASCII码 HT
十六进制码 09
十进制码9
[描述] 移动打印位置到下一个水平制表位置。
16/53
----------------------- 18-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
[注意] * 通过ESC D命令设置水平制表位的位置。
* 如果没有设置下一个水平制表位置,则该命令被忽略。
* 水平定位位置的缺省设定为字符A(6×12)的8个字符宽度(第9,17,25, … 列)。
[参照] ESC D
[例子] char NextPos = 9
PrtSendData(“商品名”,6)
PrtSendData(&NextPos,1)
PrtSendData(“单价”,4)
PrtSendData(&NextPos,1)
PrtSendData(“数量”,4)
PrtSendData(&NextPos,1)
PrtSendData(“金额”,4)
4.1.8 FS U nL nH
[名称] 按Unicode编码向打印发送数据
[格式] ASCII码 FS U nL nH
十六进制码1C 55 nL nH
十进制码 28 85 nL nH
[描述] 打印n(n=nL+nH*256)个Unicode编码字符。
[注意] * 因Unicode是双字节编码,此命令后的2*n(n=nL+nH*256)个字节被当作Unicode编码字符处理;
* 该指令中输入的汉字只支持GBK字库中包含的汉字,没有包含Unicode中所包含的所有汉字;
* 有关GBK的详细信息请参阅全国信息技术标准化技术委员会制定的 “汉字内码扩展规范”;
* 有关Unicode的详细信息可以参见Unicode的官方网站http://www.unicode.org;
* 本命令不受汉字命令的影响,也不受自定义字符命令的影响;
* 本命令可以嵌入其他ESC/GS/FS指令,但要采用Unicode编码。
[例子] char SendStr[64]
SendStr[0]=0x1CSendStr[1]=’U’SendStr[2]=11SendStr[3]=0
SendStr[4]=0x55SendStr[5]=0x00//U+0055:’U’
SendStr[6]=0x4ESendStr[7]=0x00//U+004E:’N’
SendStr[8]=0x49SendStr[9]=0x00//U+0049:’I’
SendStr[10]=0x43SendStr[11]=0x00//U+0043:’C’
SendStr[12]=0x4FSendStr[13]=0x00//U+004F:’O’
SendStr[14]=0x44SendStr[15]=0x00//U+0044:’D’
SendStr[16]=0x45SendStr[17]=0x00//U+0045:’E’
SendStr[18]=0x53SendStr[19]=0x62//U+6253:’打’
SendStr[20]=0x70SendStr[21]=0x53//U+5370:’印’
SendStr[22]=0x4BSendStr[23]=0x6D//U+6D4B:’测’
SendStr[24]=0xD5SendStr[25]=0x8B//U+8BD5:’试’
PrtSendData(SendStr,26)
PrtSendData(“\n”,1)
17/53
----------------------- 19-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
4.2 字符参数设置命令
4.2.1 ESC ! n
[命令] 选择打印模式
[格式] ASCII码ESC ! n
十六进制码 1B 21 n
十进制码 27 33 n
[范围] 0 ≤ n ≤ 255
[描述] 通过指定参数n 的值选择打印模式。参数n 的定义如下:
位 值 意义
0 0 西文字符 (半宽)字体A (6 ×12),汉字字符 (全宽)字体A (12×12)
1 西文字符 (半宽)字体B (8×16),汉字字符 (全宽)字体B (16×16)
1 - 未定义
2 - 未定义
3 0 取消粗体模式
1 设置粗体模式
4 0 取消倍高模式
1 设置倍高模式
5 0 取消倍宽模式
1 设置倍宽模式
6 - 未定义
7 0 取消下划线模式
1 设置下划线模式
[注意] * 当同时选择倍高及倍宽模式时,则打印出四倍大小字符。
* 打印机可以为所有字符加下划线,但不能为由HT命令产生的空白或顺时针旋转90°的字符加下划
线。
* 当一行中有一些倍高或更高字符时,行中所有字符都沿基线对齐。
* ESC M也可设定字体。最后接收到的命令的设定有效。
* ESC E也可设定或取消粗体模式。最后接收到的命令的设定有效。
* ESC –也可设定或取消下划线模式,最后接收到的命令的设定有效。
* GS !也可设定字符大小。最后接收到的命令的设定有效。
* 本命令对英数字符和汉字都有效。
[缺省值] n = 0
[参照] ESC -, ESC E, GS !, ESC M
[例子] char SendStr[4]
SendStr[0] = 0x1B
SendStr[1] = ’!’
SendStr[2] = 0x28// 00101000 倍宽粗体
PrtSendData( SendStr, 3)
18/53
----------------------- 20-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
4.2.2 GS ! n
[名称] 放大字符
[格式]ASCII码 GS ! n
十六进制码1D 21 n
十进制码 29 33 n
[范围]0 ≤ n ≤ 255 (1 ≤垂直倍数≤ 2, 1 ≤ 水平倍数≤ 2)
[描述] 用位0~3位选择字符高度,用位4~7位选择字符宽度,如下所示:
0 1 2 3 高度4 5 6 7 宽度
0 0 0 0 1倍0 0 0 0 1倍
1 0 0 0 2倍1 0 0 0 2倍
[注意] * 该命令对所有字符(英数字符和汉字) 有效。
* 如果n 在定义范围之外,忽略该命令。
* 垂直方向是指进纸方向,水平方向与进纸方向垂直。然而,当字符方向顺时针旋转90°后,垂直
方向与水平方向之间的关系颠倒,也就是说本命令优先级低于于ESC V,当两个命令同时有效时,
字符显示是先旋转,再放大。
* 当字符以不同的尺寸在一行中放大时,一行中所有的字符沿基线对齐。
* 用ESC ! 命令也可以设置字符大小。以最后接收到的命令设置当前模式。
[缺省值] n = 0
[参考] ESC !
[例子] char SendStr[4]
SendStr[0] = 0x1D
SendStr[1] = ’!’
SendStr[2] = 0x01// 00000001 倍高
PrtSendData( SendStr, 3)
4.2.3 ESC M n
[名称] 选择字符字体
[格式]ASCII码 ESC M n
十六进制码1B 4D n
十进制码 27 77 n
[范围] n = 0, 1, 16, 17,18,19
[描述] 选择字符字体。
N(十进制) 意义
0 西文字符 (半宽)字体(6×12)
1 西文字符 (半宽)字体(8×16)
16 简体汉字字符字体12×12
19/53
----------------------- 21-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
17 简体汉字字符字体16×16
18 BIG5汉字字符字体12×12
19 BIG5汉字字符字体16×16
[注意]* ESC !也可设定字体。最后接收到的命令的设定有效。
* 当使用该命令设定字体时。可以分别设定西文字体和汉字字体,而且互不影响。
[参考]ESC !
[例子]char SendStr[8]
SendStr[0]=0x1B
SendStr[1]=’M’
SendStr[2]=0// 西文6×12
SendStr[0]=0x1B
SendStr[1]=’M’
SendStr[2]=0x11// 简体中文16×16
PrtSendData( SendStr, 6)//以后打印的中文字体为16×16,西文为6×12
4.2.4 ESC – n
[名称]设置/取消下划线
[格式]ASCII码 ESC – n
十六进制码 1B 2D n
十进制码27 45 n
[范围]0 ≤ n ≤ 2
[描述] 基于以下的n值,设定 /解除下划线模式:
n(十进制) 意义
0解除下划线模式
1设定下划线模式(1 点粗)
2设定下划线模式(2 点粗)
[注意] * 打印机不能给旋转字符以及反白字符打印下划线。
* 改变字符大小不影响当前下划线的粗细。
* 使用ESC !也可以设定或解除下划线模式。最后接收的命令设定有效。
* 该命令对英文和汉字字符都有效。
[缺省值] n = 0
[参照]ESC !
[例子]char SendStr[3]
SendStr[0] = 0x1B
SendStr[1] = ’-’
SendStr[2] = 1//单行下划线
PrtSendData( SendStr, 3)
20/53
----------------------- 22-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
4.2.5 ESC E n
[名称] 设定/解除粗体打印
[格式]ASCII码 ESC E n
十六进制码 1B 45 n
十进制码27 69 n
[范围]0 ≤ n ≤ 255
[描述] 设定或解除粗体打印模式。
当n 的最低位(LSB)为0时,解除粗体打印模式。
当n 的最低位(LSB)为1时,设定粗体打印模式。
[注意] * 仅n 的最低有效位允许使用。
* 使用ESC !也可以设置或取消粗体模式。最后接收的命令设定有效。
[缺省值] n = 0
[参照] ESC !, ESC G
[例子] char SendStr[3]
SendStr[0] = 0x1B
SendStr[1] = ’E’
SendStr[2] = 1//粗体
PrtSendData(SendStr,3)
4.2.6 ESC G n
[名称] 设定/解除重叠打印
[格式]ASCII码 ESC G n
十六进制码 1B 47 n
十进制码27 71 n
[范围]0 ≤ n ≤ 255
[描述] 设定或解除重叠打印模式。
当n 的最低有效位(LSB)为0时,解除重叠打印模式。
当n 的最低有效位(LSB)为1时,设定重叠打印模式。
[注意] * 仅n 的最低有效位允许使用。
* 在重叠模式和粗体模式中打印机输出是相同的。
[缺省值] n = 0
[参照] ESC E, ESC !
[例子] char SendStr[3]
SendStr[0] = 0x1B
SendStr[1] = ’G’
SendStr[2] = 1//重叠
PrtSendData( SendStr, 3)
21/53
----------------------- 23-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
4.2.7 GS B n
[名称] 设定/解除反白打印模式
[格式] ASCII码GS B n
十六进制码 1D 42 n
十进制码 29 66 n
[范围] 0 ≤ n ≤ 255
[描述] 设定或解除反白打印模式。
当n 的最低有效位为0时,关闭反白模式。
当n 的最低有效位为1时,打开反白模式。
[注意] * 仅n 的最低位有效。
* 该命令对内置字符和用户自定义字符均有效。
* 反白模式打开时,它对ESC SP设定的空白也有效。
* 该命令不影响位图,用户自定义位图,条形码,条码显示字符和由HT, ESC $, 及ESC \ 跳过的
间距。
* 反白模式优先于下划线模式。选择反白模式时,即使下划线模式打开也被禁止(但不取消)。
[缺省值] n = 0
[例子] char SendStr[3]
SendStr[0] = 0x1D
SendStr[1] = ’B’
SendStr[2] = 1//反白
PrtSendData( SendStr, 3)
4.2.8 ESC V n OK
[名称] 设置/解除字符旋转模式
[格式] ASCII码ESC V n
十六进制码 1B 56 n
十进制码 27 86 n
[范围] 0 ≤ n ≤ 3
[描述] 设置/解除字符旋转模式
N (十进制) 意义
0 解除旋转模式
1 设置90°顺时针旋转模式
2 设置180°顺时针旋转模式
3 设置270°顺时针旋转模式
[注意] * 当设置了下划线模式时,对于顺时针90°旋转的字符,打印机不加下划线。
* 在 旋转模式下,倍宽和倍高命令放大字符的方向与一般模式下倍高倍宽命令放大字符的方向相
反。
[缺省值] n = 0
22/53
----------------------- 24-----------------------
用户文档 JPM112 打印机开发手册(V1.0 )
[参照] ESC !, ESC –
[例子] char SendStr[3]
SendStr[0] = 0x1B
SendStr[1] = ’V’
SendStr[2] = 2//旋转180度
PrtSendData( SendStr, 3)
4.3 打印排版参数设置命令
4.3.1 ESC $ nL nH
[名称] 设置绝对打印位置
[格式]ASCII码 ESC $ nL nH
十六进制码1B 24 nL nH
十进制码 27 36 nL nH
[范围]0 ≤ nL ≤ 255
0 ≤ nH ≤ 255
[描述] 设定从一行的开始到将要打印字符的位置之间的距离。
从一行的开始到打印位置的距离为N个水平点距。
nL nH是双字节无符号整数N的低位和高位,N=nL + nH × 256
[注意] * 如果设定的打印位置超出了可打印区域(N>244),则被设置为可打印区域的最大值 (N=244)。
[参照] ESC \
[例子] char SendStr[4]
SendStr[0] = 0x1B
SendStr[1] = ’$’
SendStr[2] = 15//0.2×15=3
PrtSendData( SendStr, 3) //绝对位置设为距左边界3毫米(15水平点距)
PrtSendData( “从左侧3毫米处开始打印\n”, 22)
4.3.2 ESC D n1 n2…nk NULL
[名称] 设置水平制表位
[格式]ASCII码 ESC D n1…nk NULL
十六进制码 1B 44 n1…nk 00
十进制码27 68 n1…nk 0
[范围]1 ≤ n ≤ 255 0 ≤ k ≤ 8
[描述] 设置水平定位位置。
n 指定从一行开始的列号,用来设置水平定位位置。
k 表示将被设置水平定位点的总数。
[注意] * 水平制表位置作为一个值储存,这个值为n个西文字符宽度,是从行的开始测量的。字符宽度包
一定要采纳啊!!
该打印控制命令(WPSONStandardCodeforPrinter)是EPSON公司自己制定的针式打印机的标准化指令集,现在已成为针式打印机控制语言事实上的工业标准。ESC/POS打印命令集是ESC打印控制命令的简化版本,现在大多数票据打印都采用ESC/POS指令集。其显著特征是:其中很大一部分指令都是以ESC控制符开始的一串代码。英文模式下的命令
代码功能
CR回车
ESC!设置打印方式
ESC%选择或取消用户自定义字符集
ESC&定义用户自定义字符集
ESC*设置位映射方式
ESC@初始化打印机
ESC~LEDON/OFF
ESCESC2选择行间距为1/6英寸
ESC3设置行进为最小间距
ESCBEL蜂鸣器ON/OFF
ESCC设置单页长度
ESCc0选择打印页
ESCc1选择行间距
ESCc3选择纸结束信号输出
ESCc4选择打印纸及检测器(终止打印)
ESCc5禁止/使能面板开关
ESCc6禁止/使能ON-LINE开关
ESCd打印及N行进纸
ESCD设置TAB位置
ESCe打印病退回N行
ESCf设单页等待时间
ESCF选择或取消单页退纸区
ESCi全切割
ESCJ以最小间距进行打印和进纸
ESCK以最小间距进行打印和退纸
ESCl选择或取消倒过来的字符
ESCm局部切割
ESCo印章
ESCp产生指定脉冲
ESCq释放纸
ESCr选择打印颜色
ESCR选择国际字符子集
ESCSP设置右边界
ESCt选择字符码表
ESCU选择或取消单向打印
ESCV发送打印机状态
ESCz设置或取消两页并行打印
FF打印送出单页
HT水平TAB
LF换行
RS流水TAB
// ESC * m n1 n2 打印图形点阵 正方形cmd[0]=27
cmd[1]=51
cmd[2]=16
WriteData(cmd,3)
cmd[0]=27
cmd[1]=42
cmd[2]=0
cmd[3]=16
cmd[4]=0
cmd[5]=255
for (int i=6i<20i++)
cmd[i]=128
cmd[20]=255
cmd[21]=10
WriteData(cmd,22)
for (i=6i<20i++)
cmd[i]=1
WriteData(cmd,22)
cmd[0]=10
cmd[1]=10
cmd[2]=10
WriteData(cmd,3)
POS机打印涉及的内容很专业,给个网址参考吧,希望对你有帮助。(该地址较详细地说明了ESC/POS指令集的使用,包括范例)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)