Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1132916
  • 博文数量: 91
  • 博客积分: 10053
  • 博客等级: 上将
  • 技术积分: 1335
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-01 12:46
文章分类
文章存档

2011年(4)

2010年(22)

2009年(22)

2008年(43)

分类: LINUX

2010-06-19 15:36:04

esc/pos打印指令(一)

打印控制命令

5.1.打印控制命令

5.1.1 概述

BS-210BM 提供了ESC/POS命令集。下面将对每个命令进行说明。每个命令的说明包括格式和解释两部分。格式部分提供了命令的ASCII码、十进制码和十六进码三种格式,解释部分描述命令的功能。三种命令的格式是等价的,用户可按照需要选择任一种。

5.1.2 各个命令的描述格式如下:

打印命令                   功能
格式:  ASCII: 以标准ASCII字符序列表示
    十进制: 以十进制数字序列表示
   十六进制: 以十六进制数字序列表示
说明:该命令功能和使用说明。

5.1.3 命令说明

HT                    水平制表
格式:  ASCII: HT
    十进制: 09
   十六进制: 09
说明:
打印位置进行到下一水平制表位置。
如果当前打印位置超过了最后一个水平制表位置,则HT命令不被执行。
水平制表位置由 ESC D命令设置。
LF                   打印并换行
格式:  ASCII: LF
    十进制: 10
   十六进制: 0A
说明:
打印存放在行编辑缓存中的一行数据并按当前设定的行距向前走纸一行。ESC2,ESC3指令可设定行距的长短。
如果行编辑缓存空,则只按当前设定的行距向前走纸一行。

CR                    打印回车
格式:  ASCII: CR
    十进制: 13
   十六进制: 0D
说明:
当打印在行编辑缓存中的一行数据之后,不进行走纸操作。

ESC SP              设置字符右间距
格式:  ASCII: ESC  SP n
    十进制: 27  32 n
   十六进制: 1B  20 n
说明:
以半点为设定单位(1/144英寸),设置字符右边间距为n个半点距。
默认值n=0。

ESC !              设置字符打印方式
格式:  ASCII: ESC  ! n
    十进制: 27  33 n
   十六进制: 1B  21 n
说明:
0≤n≤255
ESC ! n是综合性的字符打印方式设置命令,用于选择打印字符的大小和下划线。
打印参数n的每位定义为:
位 功能 值
0 1
0 字模选择 7×9 5×7
1 无定义
2 无定义
3 无定义
4 倍 高 取消 设定
5 倍 宽 取消 设定
6 无定义
7 下划线 取消 设定
默认值n=0,

ESC %           允许/禁止用户自定义字符
格式:  ASCII: ESC  %  n
    十进制: 27  37 n
   十六进制: 1B  25 n
说明:
参数n为一个字节,只有最低位有效。
当n=<*******1>B时,选择用户自定义字符集;
当n=<*******0>B时,选择内部字符集。
0≤n≤255,默认值n=0。
ESC &               设置用户自定义字符
格式: ASCII: ESC  &  y  n  m  x  d1  d2……db
   十进制: 27  38  y  n  m  x  d1  d2……db
  十六进制: 1B  26  y  n  m  x  d1  d2……db
说明:
该命令用于自定义字符。各参数为:
y:字符的纵向字节数。这里取 y=1,2。
n:自定义字符集的起始ASCII码,n≥32。
m:自定义字符集的终止ASCII码,m≤127。自定义字符个数为m-n+1,最多可定义96个字符。
当只有一个自定义字符时,取m=n。
a:自定义字符的水平方向的点数。
d1 d2……db:自定义字符的数据。每个字符 y×x个字节,m-n+1个自定义字符共有:
(y×x)×(m-n+1)个字节。

每个自定义字符数据的格式:

d1 d3 … d(y×x)×(m-n+1)-1
d2 d4 … d(y×x)×(m-n+1)

ESC *                  设置图形点阵
格式:  ASCII: ESC  *  m  n1  n2  D1,D2 … Dk
     十进制: 27 42 m  n1  n2  D1,D2 … Dk
    十六进制: 1B 2A m  n1  n2  D1,D2 … Dk
说明:
该命令用来设置点阵图形模式(m)和横向图形点阵。
m = 0,1: 表示打印密度。
0≤n1≤255,0≤n2≤1,0≤Dk≤255,k= n1+ n2×256。
n1,n2为两位十六进制数,n1这低字节,n2这高字节,k= n1+ n2×256,表示该命令下载的要打印图形的横向点数,该值应小于打印机的最大行宽打印点数。如果下送的点图数据超出一行的最大行宽打印点数时,超出的部分被忽略。

m 垂直方向点数 点密度 最大点数 图形打印模式
0 8 单密度 210 相邻点打印
1 8 双密度 420 相邻点不打印

Dk 定义为:

ESC 2              设定1/6英寸换行量
格式:  ASCII: ESC  2
    十进制: 27  50
   十六进制: 1B  32
说明:
此指令将打印机的换行量设定为1/6英寸。
ESC 3            设定 n/144英寸换行量
格式:  ASCII: ESC  3  n
    十进制: 27  51  n
   十六进制: 1B  33  n
说明:
此指令将打印机的换行量设定为 n/144英寸。
n=1 - 255。

ESC 〈                打印头归位
格式:  ASCII: ESC 〈
    十进制: 27  60
   十六进制: 1B  3C
说明:
执行该指令后,打针头会回到原位(home的位置)。

ESC @                初始化打印机
格式:  ASCII: ESC  @
    十进制: 27  64
   十六进制: 1B  40
说明:
该命令初始化打印机:使打印机恢复到最初的联机状态,清除以前留下的程序。

ESC D               设置水平制表值
格式:  ASCII: ESC  D  Nk NUL
    十进制: 27 68 Nk 0
   十六进制: 1B   44 Nk 00
说明:
设置水平制表位置为:N1,N2,…,Nk。
其中: 0≤Nk≤42,0≤k≤32。k为总共定义的水平跳格数,不超过32个。
Nk定义为以打印起始位置开始计算的列数,实际位置为(k-1)×字符宽度(10)。
Nk的默认值为:0,1,2,3,… 31。
NUL加在最后,表示该命令结束。

ESC D NULL        消除所有的水平制表位置
格式:  ASCII: ESC  D  NUL
    十进制: 27 68 0
   十六进制: 1B  44 0
说明:
ESC D NUL命令消除所有的水平制表位置,之后再执行的HT命令将无效。

ESC J              执行n/144英寸走纸
格式:  ASCII: ESC J  n
    十进制: 27 74 n
   十六进制: 1B  4A n
说明:
进纸n/144英寸,n值应为0到255之间的任意值。
若当时有打印内容则在打印完成后执行走纸。

ESC R               选择国际字符集
格式:  ASCII: ESC  R  n
    十进制: 27 82 n
   十六进制: 1B  52 n
说明:
ESC R用于选择11个不同国家的不同ASCII字符集。
n=0~10。默认值为0,选择U.S.A方式。

ESC U              设置/取消单向打印
格式:  ASCII: ESC  U  n
    十进制: 27 85 n
   十六进制: 1B  55 n
说明:
设置/取消单向打印。n=0~255,仅最低位有效。
当n=<×××××××1>B时,在字符方式下设置为准双向打印,在图形方式下设置为单向打印。
当n=<×××××××0>B时,设置双向打印。
默认值n=0。

ESC C             设定检测黑标的范围
格式:  ASCII: ESC  C    n
    十进制: 27 67 n
   十六进制: 1B  43 n
说明:
以当前的行距为单位,以行数来定义检测黑标的范围,默认值为4英寸。

ESC FF             执行走纸到黑标位置
格式:  ASCII: ESC  FF    
    十进制: 27 12
   十六进制: 1B  0C
说明:
该命令使打印机在一定长度范围寻找黑标,并在黑标位置停下。
若无黑标或检测不到黑标,那么要走完这段长度后停下。
若当前就在黑标位置,那么将不会有走纸动作。

ESC c 4            设定缺纸时停止打印
格式:  ASCII: ESC  c  4  n
    十进制: 27 99 52 n
   十六进制: 1B 63 34 n
说明:
设置/取消纸检测器检测到缺纸时停止打印。
N=0~255,仅最低位有效。
当n=<*******1>B时,纸检测器检测到缺纸时停止打印。
当n=<*******0>B时,纸检测器检测到缺纸时不停止打印,以便用户可以将最后一张单据打印至页底。
默认值n=1。

ESC c 5 n         允许/禁止走纸按键
格式:  ASCII: ESC c 3 n
    十进制:  27 99 33 n
   十六进制:  1B 63 35 n
说明:
当n=<*******1>B时,禁止纸按键。
当n=<*******0>B时,允许纸按键(默认值)。


ESC d             打印并进纸n字符行
格式:  ASCII: ESC  d  n
    十进制: 27 100 n
   十六进制: 1B 64 n
说明:
打印行缓存里的数据并向前走纸n行。
n=0~255。

ESC  i                全切纸命令
格式:  ASCII: ESC  i 
    十进制:  27 105
   十六进制:  1B 69
说明:
打印机控制切纸刀全切纸一次。

ESC  j n             退纸n/144英寸
格式:  ASCII: ESC  j n
    十进制:  27 106 n
   十六进制:  1B 6A n

esc/pos打印指令(二) 作者:红梅 时间:2005-5-16 1:48:00
11



说明:
当执行该指令时退纸n/144英寸(nx0.176mm)。
n=0~255。
ESC m               部分切纸命令
格式:  ASCII: ESC  m
    十进制: 27 109
   十六进制: 1B 6D
说明:
打印机控制切纸刀部分切纸一次。
ESC p              产生钱箱驱动脉冲
格式:  ASCII: ESC  p  m n1 n2
    十进制: 27 112 m n1 n2
   十六进制: 1B 70 m n1 n2
说明:
产生钱箱驱动脉冲。
m=0,1,48,49 0≤n1≤n2≤255
驱动脉冲形式为:
解释:
打开钱箱脉冲时间为n1×2毫秒。
关闭钱箱脉冲时间为n2×2毫秒。
ESC t                 选择字符集
格式:  ASCII: ESC  t  n
    十进制: 27 116 n
   十六进制: 1B 74 n
说明:
选择中文方式下的ASCII字符集。
0: 选择7×9字符集(默认值)。
1: 选择7×7字符集。

FS !                汉字综合选择
格式:  ASCII: FS  ! n
    十进制: 28 33 n
   十六进制: 1C 21 n
说明:
n的各位的定义如下:
位 0 1
0 无定义
1 无定义
2 宽正常 汉字倍高
3 高度正常 汉字倍高
4 无定义
5 无定义
6 无定义
7 无下划线 汉字下划线
FS &              进入汉字打印方式
格式:  ASCII: FS  &
    十进制: 28 38
   十六进制: 1C 26
说明:
打印机接收到该命令后,结束本行打印,从下一行开始转为汉字打印方式。
在汉字打印方式时,打印机接收的代码为2字节的标准机内码(均为大于9FH的码),根据该代码寻找打印机的硬汉字字模,打印国标15×16点阵的汉字。
打印机接收到单字节的ASCII码(20H-9FH)时,将打印出相应的5 ×7或7×7点阵字符。
FS ~ S           选择汉字打印速度
格式:  ASCII: FS  ~ S n
    十进制: 28 126 83 n
   十六进制: 1C 7E 53 n
说明:
此功能设置汉字打印模式时的打印速度,当n=1时为汉字高速打印,横向分辨率为144 DPI,纵向分辨率为72 DPI;
当n=0时为正常打印模式,横向分辨率为144 DPI,纵向分辨率为144 DPI 此模式为默认模式。
FS ·             退出汉字打印方式
格式:  ASCII: FS  ·
    十进制: 28 46
   十六进制: 1C 2E
说明:
  打印机接收到该命令后,退出汉字打印方式,转为正常的西文打印方式。
FS 2                  用户自定义汉字
格式:  ASCII: FS  2 a1 a2 d1 d2 d3 …d32
    十进制: 28 50 248 a2 d1 d2 d3 …d32
   十六进制: 1C 32 F8 a2 d1 d2 d3 d32
说明:
此功能为用户自定义汉字。
a1=F8(十六进制)
a2为A1与FE(十六进制)之间任意值。
因汉字代码为二字节,a1为第一字节,a2为第二字节,可定义94个汉字。
FS  S             设定全角汉字字间距
格式:  ASCII: FS  S n1 n2
    十进制: 28 83 n1 n2
   十六进制: 1C  53 n1 n2
说明:
0≤n1,n2≤127,n1决定字符左边间距,n2决定字符右边间距。
单位是1/160英寸,电源打开时的初始设定为n1=0,n2=2。
FS  T             设定半角汉字字间距
格式:  ASCII: FS  T n1 n2
    十进制: 28 84 n1 n2
   十六进制: 1C  54 n1 n2
说明:
0≤n1,n2≤127,n1决定字符左间距,n2决定字符右间距。
单位是1/180英寸,电源打开时的初始设定为n1=0,n2=2。
GS ( F pL pH a m nL nH  设置黑标定位偏移量
格式:  ASCII: GS ( F pL pH a m nL nH    
十进制: 29 40 70 pL pH a m nL nH
  十六进制: 1D 28 46 pL pH a m nL nH
说明:
该命令用于选择黑标定位控制允许,且设置切/撕纸位置或起始打
印位置相对于黑标检测的偏移量。该值以点数计算。
命令相关参数为:
pL+(pHx256)=4 即 pL=4,pH=0
1≤a≤2,
m=0,48
0≤(nL+nHx256)<1700

l a 用来选择设置切/撕纸位置或起始打印位置的偏移量。
a 功能
1 设置起始打印位置相对于黑标检测位置的偏移量
2 设置切/撕纸位置相对于黑标检测位置的偏移量
l m=0或48,选择偏移量为前进纸方向计算;
l nL,nH设置的偏移量对应实际距离为(nL+nHx256)×0.176mm
l 只有执行此命令后GS FF 和 GS V命令有关黑标定位操作方有效;
l 设置起始打印位置偏移量(a=1)在执行GS FF 命令时有效;
l 设置切/撕纸位置偏移量(a=2)在执行GS V m 命令时有效;
l 默认值为nL=nH=0,即黑标检测开关检测到黑标时,当前票面上对应打印头的位置为设定的起始打印位置,当前票面上对应切/撕纸口的位置为设定的切/撕纸位置。
l 关于切/撕纸位置偏移量和起始打印位置偏移量的计算说明
1、 切/撕纸位置到黑标印刷位置的距离L与打印机的固有机械值L0相同,而且切/撕纸位置到起始打印位置的距离Q与打印机构固定的机械值Q0相同时,即用GS( F命令所设置的偏移量均为0。
2、 当黑标印刷位置到切/纸位置的距离L小于打印的机械值L0时,GS( F命令的切/撕纸位置偏移量计算为:
切/撕纸位置偏移量=(L0—L)/0.176(点数)
3、 当黑标印刷位置到切/撕纸位置的距离L大于打印机的机械值L0时,GS( F命令的切 /撕纸位置偏移量计算为:
切/撕纸位置偏移量=(L0+相邻两黑标间的距离—L)/0.176(点数)。
注意:在设置切/撕纸位置偏移量时,GS 〈 F命令的参数a应为2。
4、 当切/撕纸位置偏移量不为零或每单的起始打印位置到切/撕纸位置的距离Q大于打印机的机械值Q0)时,GS( F命令的切/撕纸位置偏移量计算为:
起始打印位置偏移量=(Q—Q0)/0.176 +切/撕纸位置偏移量。
注意:在设置切/撕纸位置偏移量时,GS 〈 F命令的参数a应为1。
5、 打印结构M—U110(051)的固有机械值
L0=39mm, Q0=11mm,
当打印机构安装在机壳内,使得撕纸位置和打印起始位置的固有机械值发生改变时
L0=39+△L Q0=11+△L
6、 △L的测量方法如下:
1) 先将空白打印纸装入打印机械,撕去出纸口上多余的打印纸
2) 给打印机发20个字符“E”,打印在打印纸上
3) 让打印机发走出足够长度,测量纸端到打印字符“EEEEEEEEEEEEEEEEEEEE”的上沿距离,该值减去11mm,即为△L。切/撕纸位置起始打印位置
GS FF           送黑标纸至打印起始位置
格式:  ASCII: GS  FF
    十进制: 29 12
   十六进制: 1D 0C
说明:
该命令仅在黑标定位控制允许条件(GS ( F pL pH a m nL nH)下有效。
检测黑标并前送纸至GS( F(a=1)命令设置确定的打印起始位置。
当黑标纸已在当前打印起始位置上,则不执行进纸操作。
GS V m           送黑标纸到切/撕纸位置
格式:  ASCII: GS  V m
    十进制: 29 86 m
   十六进制: 1D 56 m
说明:
当m =0,1,48,49时打印机执行送纸
当选择黑标定位有效时,前送纸距离有GS ( F(a=2)命令设置的参数确定。
当禁止黑标定位(未设置或正确设置GS ( F命令)时,该命令无效。
GS V                走纸到切纸位置
格式:① ASCII: GS  V m
    十进制: 29 86 m
十六进制: 1D 56 m
② ASCII: GS  V m n
    十进制: 29 86 m n
十六进制: 1D 56 m n
说明:
①m=1,49。②m=66,0≤n≤255
M 解 释
1,49 部分切纸(无切刀则无切纸动作)
66 走纸到(切纸位置+n×1/144英寸)位置并部分切纸(无切纸刀则无切纸动作)
GS *                下装自定义点图
格式:  ASCII: GS  * n1 n2 [d]k
    十进制: 29 42 n1 n2 [d]k
   十六进制: 1D 2A n1 n2 [d]k
说明:
GS *命令主要用于将重复打印单据中不变的徵标等大量图形数据一次性下装到打印机内贮存起来,在重复打印单据时只需送GS /命令随时打印出所下装的点图。
下装的点图数据格式如下:
n1*8点
…….. n2*n1*7+1

n2*8点 …….. n2*n1*7+2
. .
: :
…….. n2*n1*8
其中:1〈 n1〈35,1〈 n2〈64,并要求 n1* n2〈315,k=0……n1*n2*8
下装的数据量为:n1* n2*8。
第二次执行GS *命令时,会将以前由GS *命令下装的点图数据清除,装入当前GS *命令的下装数据。
执行ESC @初始化命令不会清除下装点图数据。
GS /           将下装点图装入打印缓冲区
格式:  ASCII: GS  / n
    十进制: 29 47 n
   十六进制: 1D 2F n
说明:
GS /命令将由GS *命令定义的下装点图按照参数n的设置不同密度装入打印缓冲区。并打印出全图。
N 点图方式 纵向密度 横向密度
0 正常方式 144dpi 160dpi
1 双倍宽方式 144dpi 80dpi
2 双倍高方式 72dpi 160dpi
3 双倍高倍宽方式 72dpi 80dpi
附录一  打印命令表
命令(ASCII) 十六进制 功能说明
HT 09 打印位置进行到下一水平制表位置
LF 0a 打印行缓冲器里的内容,并向前走纸一行
CR 0D 打印回车
ESC SP 1B 20 n 设置字符右边的字间距为n个半点距(1/140英寸)
ESC ! 1B 21 n 选择打印字符的大小和下划线
ESC % 1b 25 n 允许/禁止用户自定义字符集
ESC & 1B 26 s n m a d1..dn 设置用户自定义字符集
ESC * 1B 2A m n1 n2 置点阵图形打印
ESC 2 1B 32 设定1/6英寸换行量
ESC 3 1B 33 设置字符行间距为n/8英寸
ESC 〈 1B 3C 打印头归位
ESC @ 1B 40 初始化打印机
ESC D 1B 44 设置水平制表值,最迟多可设置32个
ESC D NULL              1B 44 0 消除所有的水平制表位置
ESC J 1B 4A n 执行n/144英寸走纸
ESC R 1B 52 n 选择n个不同国家的不同ASCII字符集
ESC U 1B 55 n 设置/取消单向打印方式
ESC C 1B 43 n 设定检测黑标的范围
ESC FF 1B 0C 执行走纸到黑标位置
ESC c 4 1B 63 34 设置/取消缺纸时停止打印
ESC c 5 n 1B 63 35 允许/禁止走纸按键
ESC d 1B 64 打印并进纸n字符行
ESC i 1B 69 切纸刀命令
ESC j n 1B 6A 退纸n/144英寸
ESC m 1B 6D 执行部分切纸
ESC p 1B 70 产生钱箱驱动脉冲
ESC t 1B 74 选择字符集
FS ! 1C 21 汉字综合选择
FS & 1C 26 进入汉字打印方式
FS ~ S 1C 7E 53 选择汉字打印速度
FS · 1C 2E 退出汉字打印方式
FS 2 1C 32 用户自定义汉字
FS S 1c 53 n1 n2 设定全角汉字字间距
FS T 1c 54 n1 n2 设定半角汉字字间距
GS ( F pL pH a m nL nH 1D 28 46 pL pH am nL nH 设置黑标定位偏移量
GS FF 1D 0C 送黑标纸至打印起始位置
GS V m 1D 56 m 送黑标到切/撕纸位置
GS V 1D 56 走纸到切纸位置
G * 1D 2A n1 n2 下装自定义点图
GS / 1D 2F 将下装的位图装入打印缓冲区
阅读(31039) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

mjx20142014-08-29 15:49:32

你好,我有一台微型热敏打印机,打小票的。不清楚打这些代码是用什么软件平台,有什么教程么?