您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页便携式热敏打印机

便携式热敏打印机

来源:华佗小知识
MPT-II

便携式热敏打印机

开发手册(V1.0)

一 二

产品简介 ........................................................................................................................................ 4 通讯接口 ........................................................................................................................................ 5

2.1红外:IR端口 ---------------------------------------------------------------------------------------------------- 5 2.1.1 原始红外(RAW-IR) ......................................................................................................... 6 2.1.2 VIR ...................................................................................................................................... 6 2.1.3 IRDA IrCOMM ...................................................................................................................... 6 2.2 蓝牙(BLUETOOTH)接口 ----------------------------------------------------------------------------------- 7 2.2.1配对 ........................................................................................................................................ 7 2.2.2 使用蓝牙接口打印 ............................................................................................................... 7 2.3 RS232端口 ------------------------------------------------------------------------------------------------------- 7 2.4:WIFI无线通讯(正在开发中)。。。。。 --------------------------------------------------------- 9 三 MPT-II打印机工具软件 --------------------------------------------------------- 错误!未定义书签。 四、 打印控制指令 ................................................................................................................................ 9 4.1 基本控制指令 ------------------------------------------------------------------------------------------------ 11 4.1.1 ESC @ .................................................................................................................................. 11 4.1.2 FF......................................................................................................................................... 12 4.1.3 LF ......................................................................................................................................... 12 4.1.4 CR ........................................................................................................................................ 12 4.1.5 ESC J n ................................................................................................................................. 13 4.1.6 ESC d n ................................................................................................................................ 13 4.1.7 HT ........................................................................................................................................ 13 4.1.8 FS U nL nH .......................................................................................................................... 14 4.2 字符参数设置命令 ------------------------------------------------------------------------------------------ 14 4.2.1 ESC ! n ................................................................................................................................. 14 4.2.2 GS ! n ................................................................................................................................... 15 4.2.3 ESC M n ............................................................................................................................... 16 4.2.4 ESC – n ................................................................................................................................ 17 4.2.5 ESC E n ................................................................................................................................ 17 4.2.6 ESC G n ............................................................................................................................... 18 4.2.5 ESC E n ................................................................................................................................ 18 4.2.6 ESC G n ............................................................................................................................... 19 4.3 打印排版参数设置命令 ------------------------------------------------------------------------------------ 19 4.3.1 ESC $ nL nH ........................................................................................................................ 19 4.3.2 ESC D n1 n2…nk NULL ...................................................................................................... 20 4.3.3 ESC 2 ................................................................................................................................... 21 4.3.4 ESC 3 n ................................................................................................................................ 21 4.3.5 ESC SP n .............................................................................................................................. 22 4.3.6 ESC a n ................................................................................................................................ 22 4.3.7 GS L nL nH .......................................................................................................................... 22 4.4 图形/图象打印命令 ----------------------------------------------------------------------------------------- 23 4.4.1 ESC * m nL nH d1…dk ........................................................................................................ 23

4.4.2 GS * x y d1…dk .................................................................................................................... 28 4.4.3 GS / n ................................................................................................................................... 30 4.4.4 FS P n ................................................................................................................................... 30 4.5 条码打印命令 ------------------------------------------------------------------------------------------------ 31 4.5.1 GS h n ................................................................................................................................... 31 4.5.2 GS w n .................................................................................................................................. 31 4.5.3 GS H n .................................................................................................................................. 32 4.5.4 GS f n ................................................................................................................................... 32 4.5.5 GS k ...................................................................................................................................... 33 4.6 曲线打印命令 ------------------------------------------------------------------------------------------------ 35 4.6.1 GS ‘ ...................................................................................................................................... 35 4.6.2 GS “ ..................................................................................................................................... 36 4.7 自定义字符命令 --------------------------------------------------------------------------------------------- 38 4.7.1 ESC % n ............................................................................................................................... 38 4.7.2 ESC & y c1 c2 [x1 d1...d(y * x1)]...[xk d1...d(y * xk)] ........................................................ 38 4.7.3 ESC ? ................................................................................................................................... 40 4.8 汉字命令 ------------------------------------------------------------------------------------------------------- 40 4.8.1 FS & ..................................................................................................................................... 40 4.8.2 FS 2 c1 c2 d1…dk ................................................................................................................ 41 4.8.3 FS . ....................................................................................................................................... 41 附录 ........................................................................................................................................................ 42 A 打印字符集 ----------------------------------------------------------------------------------------------------- 42 B 条码 --------------------------------------------------------------------------------------------------------------- 43 B.2 条码长度字符集表 ............................................................................................................... 43 C.预印刷黑标说明 ------------------------------------------------------------------------------------------------ 44

一 产品简介

MPT-II系列便携式热敏打印机是基于ARM平台,性能优越的支持红外、蓝牙、WIFI无线通讯技术的便携式票据、标签打印机。可广泛使用在移动政务、警务、烟草、邮政、运输、物流等等行业。

MPT-II系列便携式微型热敏打印机包含三个型号,分别为MPT-II/IR、MPT-II/BL、MPT-II/WIFI

MPT-II/IR:红外便携式打印机 MPT-II/BL:蓝牙便携式打印机 MPT-II/WIFI:WIFI便携式打印机 性能指标: 型号 打印方式 打印纸宽 重量 纸卷直径 打印点阵 内置字库 打印速度 打印机芯寿命 可打印内容 分辨率 数据通讯接口 电源 充电方式 一次充电可打印长度 异常检测 黑标侦测 装纸方式 指令集 切纸方式 使用环境 充电环境 储存环境 标配附件 可选附近

MPT-II/IR 热敏行式打印 58mm 210g 30mm 384点/行 ASCII字库(16×8、24×12)、GBK(16×16、24×24) 50~70mm/秒 50km(12.5%打印密度或以下)/100 million pulses 英文、数字、各种符号、汉字、图形、曲线、预存储图标、 条码(CODE39、EAN13、EAN8、 CODABAR、CODE128、CODE93、ITF) 203DPI/8点/毫米 IRDA/VIR/RS232 带机充电/选配充电器 缺纸侦测/电量侦测/开关盖侦测 支持 易装纸结构 ESC/POS兼容指令集 手动撕纸 温度 -10°C~50°C 湿度 20%~85% 温度 5°C~40°C 湿度 20%~85% 温度 -20°C~70°C 湿度 5%~95% 长效热敏纸、电源充电器、电池 专用串口数据线/便携套 蓝牙V1.1 CLASS /RS232 WIFI/RS232 1500mAh 7.4V 可充电锂电池 MPT-II/BL MPT-II/WIFI 二 通讯接口

MPT-II系列便携式打印机可用五种接口方式与主机进行数据传输,分别为IrDA(IrCOMM协议)、RAWIR(原始红外)、VIR蓝牙、RS232异步串行口。其中蓝牙是无线数据通讯接口,IrDA为符合国际红外数据通讯协会制定的IrCOMM协议的数据传输方式、RAW-IR为符合国际红外数据通讯协会物理层规范的数据通讯方式、VIR为在RAW-IR基础上集成了VIR协议的数据通讯方式, 。RS232为有线异步串口。MPT-II便携式微型打印机是能支持使用其中一种或几种数据通讯方式的主机设备,在开发前请先确认主机设备至少支持以上五种通讯方式中的一种。

2.1红外:IR端口

红外数据通讯技术是红外数据协会(IrDA)开发并发展起来的一项用红外光作为通讯数据载体的一种无线数据通讯技术。

红外(IR)端口作为无线数据传输接口,因其功耗低、技术成熟、使用方便等等诸多原因现在为大多数便携式设备作为数据通讯的主要手段。大部分的便携式设备都有红外(IR)端口,比如所有的WINCE掌上电脑、PALM掌上电脑、笔记本电脑,一部分手机、大部分便携式数据采集器,以及一小部分用于野外作业的测量仪器。

MPT—III 打印机在硬件上符合IrDA1.1物理层的规范。

由于红外(IR)端口是以红外光线作为数据载体,所以在数据发送设备和接收设备之间不能有障碍物,双方的红外端口要互相对准,并且距离不能太远。

所以MPT-II/IR打印机与其他符合标准IrDA物理层规范的主机设备通过红外(IR)端口连接时,要注意主机和MPT-II/IR打印机之间不能有障碍物,红外端口之间的夹角不能大于30°,距离不能超过0.5M。

MPT-II/IR可以使用原始红外(RAW-IR)与主机进行通讯,也可以选择采用Vir协议或IrCOMM协议(IrDA标准)与主机进行通讯。

当采用原始红外与主机进行通讯时,红外收发器只是简单地按照一定地编码规则将串口数据信号转为红外光信号或将光信号转为串口数据信号。在这种用法下,红外端口被称为“原始红外(RAW-IR)”,当您使用原始红外(RAW -IR)时,无法跟IrDA兼容,因为在收发数据的过程中,软件并没有使用IrDA协议栈。

VIR是一种更安全可靠的红外数据通讯方式,即在原始红外的基础上增加了VIR协议。如果用户主机不支持IrCOMM协议,推荐使用VIR协议。

相较于VIR协议,IrCOMM虽然也是基于原始红外硬件基础上的协议,但它是一种更通用的有国际红外数据通讯协会制定的红外数据传输协议。IrCOMM是IrDA协议的一个子集,IrDA协议是在原始红外(RAW-IR)的硬件基础之上为了确保数据传输的稳定性、可靠性、易用性而由IrDA协会开发出的无线数据通讯协议,几乎所有支持IrDA协议栈的便携式设备(如WINCE、POCKET PC、PALM各种红外手机等等)都支持IrCOMM。在这种模式下,如果驱动打印机的主机设备使用的是支持IrDA协议栈的操作系统(比如WINCE、PALM OS),那么对于开发者来说,IrCOMM端口就是一个由软件虚拟的串行端口,如果主机设备的操作系统没有IrDA协议栈,如果要实现IrCOMM模式数据传输,那么需要开发者自己编写IrDA协议栈。主机设备是否支持IrCOMM,请参阅主机设备的开发资料或向主机设备制造商咨询。 由于MPT-II/IR打印机中原始红外(RAW-IR)端口和VIR端口和IrCOMM端口使用同样的硬件资源,所以原始红外(RAW-IR)、VIR和IrCOMM不能同时使用,MPT-II/IR默认的红外模式为IrComm,如要更改当前红外(IR)端口的使用模式,需要专用的工具MPT-II_CONFIG

修改设置

如要了解详细的IrDA协议请参见IrDA协会官方网站(http://www.irda.org/)公布的技术资料

2.1.1 原始红外(RAW-IR)

原始红外(IR)端口由于是直接把红外(IR)收发器附加在RS232异步串口的输入输出端,所以红外收发器只是简单地将RS232异步串口数据信号按照一定的编码规则转为红外光信号或将光信号转为串口数据信号。因此对于原始红外端口来说,除了细微的差别,主机应用开发者只需要象操作RS232异步串口那样操作主机的原始红外(RAW-IR)就可以了。

在操作主机原始红外(RAW-IR)端口之前,必须先知道原始红外(RAW-IR)端口的端口号,原始红外(RAW-IR)端口的端口号可以从主机设备的开发资料或主机设备制造商处获知。对于部分可以使用原始红外(RAW-IR)端口的主机设备,打开原始红外(RAW-IR)端口的方法可能和打开串口的方法不一样,请仔细参阅主机设备的开发资料。

当然原始红外(RAW-IR)端口和标准的RS232异步串行口仍然有细微的差别,原始红外端口由于采用无线红外连接方式,所以只有串口的TXD信号和RXD信号有效,对于主机RS232其他引脚的操作不会对原始红外(RAW-IR)端口产生影响。

MPT-II/IR打印机在休眠状态下可以通过原始红外(RAW-IR)端口唤醒。

MPT-II/IR打印机的原始红外(RAW-IR)可以工作的波特率为:9600bps,19200bps,38400bps,57600bps,115200bps。出厂时打印机的原始红外波特率(RAW-IR)被设置成9600bps,如果用户要更改波特率,需要专用的工具MPT-II_CONFIG修改设置,详见【三、MPT-II打印机工具软件】。

注意:并不是所有的主机的原始红外(RAW-IR)都能在这些波特率下工作,在修改波特率前,请先确认您所拥有主机设备的原始红外(RAW-IR)是否能在此波特率下工作。 在主机设备编程时,原始红外(RAW-IR)端口的设置请遵照如下设置: 数据位:8位; 停止位 1位; 奇偶校验:无; 流控制 无。

在使用原始红外(RAW-IR)端口时请注意,虽然对于一般的红外源,原始红外(RAW-IR)有足够的抗干扰能力,但是对于正在试图搜索其他红外设备的红外设备(比如笔记本电脑、打开红外功能的手机)所发出的红外光,打印机并不能有效的屏蔽这些干扰,所以使用时切记不能靠近这些红外信号源。

2.1.2 VIR*开发中

为使便携式微型打印机能可靠地与不带IrDA协议栈的诸多红外手持终端进行红外数据通讯,开发了VIr协议,本协议是基于符合IrDA物理层规范的硬件的打印数据通讯协议。 任何可以使用原始红外收发数据的设备都可以使用此协议控制MPT-II/IR打印。

打印机在休眠状态下可以通过VIR协议唤醒。

VIR协议对于没有集成IrDA协议栈的红外数据通讯设备来说,是一个很好的替代IrDA协议的数据通讯协议。VIr协议消耗资源少,并且可以很容易地实现,但同时可以有效地防止红外数据传输过程中出现误码。有关VIR协议的定义及如何实现VIR协议请见附录D,如需技术支持,请浏览本公司技术支持人员,信箱mk@prttech.com

2.1.3 IRDA IrCOMM

IrDA的协议有很多,IrCOMM是IrDA协会推荐使用在打印机上的红外数据通讯协议。 在使用IrCOMM协议时,打印机可以完全杜绝其他红外源的干扰。

MPT-II/IR支持IrCOMM协议。

在使用IrCOMM时,虽然把它当作一个虚拟串行口,但是不需要设置波特率,数据传输的真实波特率是在IrCOMM协议工作的时候自适应的。并且因为IrCOMM协议负责数据校验、数据缓冲等等工作,所以对于IrCOMM串口的其他设置都是没有意义的。

对于开发者来讲,需要知道的是端口号以及如何将其打开。IrCOMM端口的端口号以及打开方法可以从主机设备的开发资料或主机设备制造商处获知。

打印机在休眠状态下可以通过IrCOMM端口唤醒。

如果开发者需要自己开发IrCOMM协议,请参见IrDA协会官方网站(http://www.irda.org/)公布的技术资料。

2.2 蓝牙(Bluetooth)接口

蓝牙是一种支持设备短距离通信(一般是10m之内)的无线电技术。能在包括移动电话、PDA、打印机、笔记本电脑、无线耳机等相关外设等众多设备之间进行无线信息交换。蓝牙的标准是IEEE802.15,工作在2.4GHz 频带,带宽为1Mb/s。如需蓝牙更详细的信息,请访问蓝牙官方网站:http://www.bluetooth.org。

MPT-II/BL 支持蓝牙无线数据传输接口,符合Bluetooth 1.1规范,功率级别为CLASS 2。 MPT-II/BL是一个蓝牙从设备,只能由蓝牙主设备(如PDA、手机、笔记本电脑)驱动打印机,其他如蓝牙耳机等蓝牙从设备无法通过蓝牙驱动打印机打印。

MPT-II/BL缺省的设备名为MPT-II/BL,开发者可根据自己的需要更改设备名。 MPT-II/BL缺省的蓝牙连接密码为PRT,开发者可根据自己的需要更改连接密码。

2.2.1配对

MPT-II/BL便携式微型打印机工作前需与驱动MPT-II/BL便携式微型打印机的主设备配对,配对过程由主设备发起。 通常的配对方法如下: 1、打印机开机,

2、主设备搜寻外部蓝牙设备,

3、如果有多台外部蓝牙设备的话,选中MPT-II/BL打印机 4、输入密码“PRT” 5、完成配对。

具体的配对方法请参阅主设备蓝牙功能说明。

配对时,MPT-II/BL便携式微型打印机必须处于开机状态。

注意:配对时,请不要将多台打印机同时开机,否则可能无法判断配对成功的是哪一台打印机。

配对成功后,其他上位机仍然可以与该打印机配对,每台打印机最多可以与8台上位机配对,如果更多的上位机与打印机配对的话,那么最早与打印机的上位机会被打印机从配对列表中自动清除,此时如果这台上位机需要驱动打印机打印的话,需要重新配对。

2.2.2 使用蓝牙接口打印

对于有虚拟蓝牙串口的上位机(如使用SMARTPHONE的手机、POCKET PC、PALM、笔记本电脑等)来说,配对成功后,就可以通过虚拟蓝牙串口向MPT-II/BL便携式微型打印机发送打印数据进行打印了。如果上位机没有虚拟蓝牙串口,如要驱动MPT-II/BL便携式微型打印机打印,请咨询上位机供应商。 2.3 RS232端口

RS232接口是最常用的数据通讯接口。MPT-II打印机都带RS232异步串行数据接口。

MPT-II打印机RS232端口规格: 数据传送: 串行 同步方式: 异步 握手信号: 无

流控制: 硬件流控制/软件流控制/无 可选

波特率: 9600bps、19200bps、38400bps、57600bps、115200bps可选。 数据字长度: 8位 校验方式: 无 停止位: 1位

插座管脚定义(打印机侧):6PIN MINI-DIN 下图为打印机RS232通讯插座的管脚定义:

TXD:打印机数据发送

RTS:打印机请求数据(仅当打印机设为硬件流控制方式时,该管脚生效,否则该管脚无用,设置打印机为硬件流控制方式的方法见【三、MPT-II打印机工具软件】) GND:地

RXD:打印机数据接收 注意:保留的管脚本公司有其他用途,开发者如要自行制作连接线,请不要使用保留的管脚,否则可能导致打印机不能正常工作甚至损坏打印。

打印机的数据接收缓冲区大小为3K byte,当打印数据量小于3K byte时,无需使用流控制,接线方式如下: 打印机 RXD GND 主设备 TXD GND

当打印数据量大于3K byte时,需要使用流控制,当使用蓝牙、IrCOMM与打印机连接时,开发者无需考虑流控制,当使用VIR协议时,开发者需根据VIR的流控制方式来避免打印机的数据缓冲区溢出,原始红外无法使用流控制。

当打印机被设为硬件流控制时,应按如下方法连接主设备与打印机: 打印机 TXD RTS RXD GND 主设备 RXD CTS TXD GND 主设备在通讯过程中监测CTS的电平,当CTS电平为高时,主设备可以向打印机发送数据,当CTS电平为低时,表示打印机忙,需停止向打印机发送数据,直到再次监测到CTS电平为高时,继续发送打印数据。

软件流控制采用XON/XOFF方式,当采用软件流控制方式时,应按如下方式连接主设备与打印机:

打印机 TXD RXD GND 主设备 RXD TXD GND 当使用软件流控制时,主设备需检测自身RXD的数据以判断打印机数据缓冲区是否满。具体方法如下:开始打印时,主设备向打印机发送数据,同时监测串行口接收的数据,当接收到XOFF(0x13)时,停止向打印机发送数据,当接收到XON(0x11)时,重新开始发送数据,再次接收到XOFF时,再停止向打印机发送数据,等待再次接收XON(0x11)时,再重新开始发送数据,如此循环,直到发送完打印数据。

2.4:WiFi无线通讯(正在开发中)。。。。。

三、 打印控制指令

MPT-II打印机控制采用ESC/POS兼容指令。通过打印机的通讯接口向打印机发送打印机控制指令和打印数据以控制打印机打印。 下表中是打印指令的简表,按照功能分类 章节 打印机控制指令 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 字符参数设置命令 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 ESC ! n GS ! n ESC M n ESC – n ESC E n ESC G n GS B n 设置字符打印模式 设置字符大小 设置打印字体 设置/取消下划线打印 设置/取消粗体打印 设置/取消重叠(粗体)打印、效果同ESC E 设置/取消反白打印 ESC @ FF LF CR ESC J n ESC d n HT FS U nL nH… 打印机初始化 打印并走纸到下页首(仅用于黑标定位时) 打印并换行 打印并回车 打印并进纸n个垂直运动单位 打印并进纸n行 移动打印位置到下一个水平制表位置 打印Unicode编码字符 指令 简述 4.2.8 打印排版参数设置命令 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 图形/图象打印命令 4.4.1 4.4.2 4.4.3 4.4.4 条形码打印命令 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 曲线打印命令 4.6.1 4.6.2 用户自定义字符 4.7.1 ESC V n ESC $ nL nH ESC \\ nL nH ESC 2 ESC 3 n ESC SP n ESC a n 设置/取消字符旋转 设置绝对打印位置 设置相对打印位置 设置行间距为缺省行间距 设置行间距 设置字间距 设置对齐方式 ESC D n1 n2…nk NULL 设置水平制表位 ESC * m nL nH d1…dk 打印位图 GS * x y d1…dk GS / n FS P n GS h n GS w n GS H n GS f n GS k GS „ GS “ ESC % n ESC & y c1 c2 … ESC ? FS & FS 2 c1 c2 d1…dk FS . 定义下传位图 打印下传位图 打印预存储位图 设置条码打印高度 设置条码宽度 设置条码阅读字符的位置 设置条码阅读字符的字体 打印条码 打印曲线 打印曲线指示字符 允许/禁止用户自定义字符 定义用户自定义字符 取消用户自定义字符 设定汉字字符打印模式 定义用户自定义汉字 解除汉字字符打印模式 4.7.2 4.7.3 汉字命令 4.8.1 4.8.2 4.8.3 本章详细描述了控制打印机打印的指令,描述中的格式说明如下: 【COMMAND】+【parameter】

【COMMAND】是命令部分,由转义字符和命令字符组成,有少量的单字节命令没有转义字符。

【parameter】是参数部分,用斜体表示,参数并不是数字字符,而是字符的值。

本章所有例子都以C语言编写,其中PrtSendData函数为虚拟函数,需要开发者根据主机实际情况编写,该函数定义如下:

PrtSendData(char *buf, int len) 描述:向打印机发送数据;

char *buf: 打印数据的指针; int len: 数据长度,单位:字节。

4.1 基本控制指令

4.1.1 ESC @

[名称] 初始化打印机 [格式] ASCII码 ESC @ 十六进制码 1B 40 十进制码 27

[描述] 清除打印缓冲区中的数据,复位打印机打印参数到当打印机缺省参数。

[注意] • 不是完全恢复到出厂设置,用户参数设置(见三、MPT-II打印机工具软件)不会被更改。

[例子] char SendStr[3]; SendStr[0] = 0x1B SendStr[1] = 0x40;

PrtSendData(SendStr, 2);

4.1.2 FF

[名称] 打印并走纸到下页首 [格式] ASCII码 FF 十六进制码 0C 十进制码 12

[描述] 将打印缓冲区中的数据全部打印出来并返回标准模式。 [注意] • 打印后,删除打印缓冲区中的数据。 • 该命令设置打印位置为行的起始点。 • 如果打印纸有预印刷黑标,则打印缓冲区中的数据后,走纸到黑标处,如果打印纸无黑标,则走纸0.5m后停止,预印刷黑标的规范请见附录C.预印刷黑标说明。 [例子] 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];

4.1.5 ESC J n

[名称] 打印并进纸

[格式] ASCII码 ESC J n 十六进制码 1B 4A n 十进制码 27 74 n [范围] 0 ≤ n ≤ 255

[描述] 打印输出打印缓冲区中的数据,并进纸n个 垂直点距。 [注意] • 打印结束后,将下一行的开始设定为打印起始位置。 • 一个垂直点距为0.125mm,以下同。 [参考] ESC d

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = ‟J‟; SendStr[2] = 8;

PrtSendData( SendStr, 3);//走纸1mm

4.1.6 ESC d n

[名称] 打印并进纸n 行 [格式] ASCII码 ESC d n 十六进制码 1B 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

[描述] 移动打印位置到下一个水平制表位置。 [注意] • 通过ESC D命令设置水平制表位的位置。

• 如果没有设置下一个水平制表位置,则该命令被忽略。

• 水平定位位置的缺省设定为字符A(12 ? 24)的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[];

SendStr[0]=0x1C; SendStr[1]=‟U‟; SendStr[2]=11; SendStr[3]=0; SendStr[4]=0x55; SendStr[5]=0x00; //U+0055:‟U‟ SendStr[6]=0x4E; SendStr[7]=0x00; //U+004E:‟N‟ SendStr[8]=0x49; SendStr[9]=0x00; //U+0049:‟I‟ SendStr[10]=0x43; SendStr[11]=0x00; //U+0043:‟C‟ SendStr[12]=0x4F; SendStr[13]=0x00; //U+004F:‟O‟ SendStr[14]=0x44; SendStr[15]=0x00; //U+0044:‟D‟ SendStr[16]=0x45; SendStr[17]=0x00; //U+0045:‟E‟ SendStr[18]=0x53; SendStr[19]=0x62; //U+6253:‟打‟ SendStr[20]=0x70; SendStr[21]=0x53; //U+5370:‟印‟ SendStr[22]=0x4B; SendStr[23]=0x6D; //U+6D4B:‟测‟ SendStr[24]=0xD5; SendStr[25]=0x8B; //U+8BD5:‟试‟ PrtSendData(SendStr,26); PrtSendData(“\\n”,1); 4.2 字符参数设置命令

4.2.1 ESC ! n

[命令] 选择打印模式 [格式] ASCII码 ESC ! n 十六进制码 1B 21 n 十进制码 27 33 n [范围] 0 ≤ n ≤ 255

[描述] 通过指定参数n 的值选择打印模式。参数n 的定义如下: 位 0 值 0 1 1 2 3 4 5 6 7 - - 0 1 0 1 0 1 - 0 1 意义 西文字符(半宽)字体A (12×24),汉字字符(全宽)字体A(24×24) 西文字符(半宽)字体B (8×16),汉字字符(全宽)字体B(16×16) 未定义 未定义 取消粗体模式 设置粗体模式 取消倍高模式 设置倍高模式 取消倍宽模式 设置倍宽模式 未定义 取消下划线模式 设置下划线模式

[注意]

• 当同时选择倍高及倍宽模式时,则打印出四倍大小字符。 • 打印机可以为所有字符加下划线,但不能为由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);

4.2.2 GS ! n

[名称] 放大字符

[格式] ASCII码 GS ! n 十六进制码 1D 21 n 十进制码 29 33 n

[范围] 0 ≤ n ≤ 255 (1 ≤垂直倍数≤ 8, 1 ≤ 水平倍数≤ 8)

[描述] 用位0~3位选择字符高度,用位4~7位选择字符宽度,如下所示: 0 0 1 1 0 0 2 0 0 3 0 0 高度 1倍 2倍 4 0 1 5 0 0 6 0 0 7 0 0 宽度 1倍 2倍

[注意] • 该命令对除条码识读字符外的所有字符(英数字符和汉字) 有效。 • 如果n 在定义范围之外,忽略该命令。

• 垂直方向是指进纸方向,水平方向与进纸方向垂直。然而,当字符方向顺时针旋转90后,垂直方向与水平方向之间的关系颠倒,也就是说本命令优先级低于于癊SC 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 1 16 17 18 19 意义 西文字符(半宽)字体(12×24) 西文字符(半宽)字体(8×16) 简体汉字字符字体24×24 简体汉字字符字体16×16 BIG5汉字字符字体24×24 BIG5汉字字符字体16×16

[注意] • ESC !也可设定字体。最后接收到的命令的设定有效。

• 当使用该命令设定字体时。可以分别设定西文字体和汉字字体,而且互不影响。 [参考] ESC !

[例子] char SendStr[8]; SendStr[0]=0x1B;

SendStr[1]=‟M‟;

SendStr[2]=0;// 西文12×24 SendStr[0]=0x1B; SendStr[1]=‟M‟;

SendStr[2]=0x10;// 简体中文16×16

PrtSendData( SendStr, 6);//以后打印的中文字体为16×16,西文为12×24

4.2.4 ESC – n

[名称] 设置/取消下划线 [格式] ASCII码 ESC – n 十六进制码 1B 2D n 十进制码 27 45 n [范围] 0 ≤ n ≤ 2

[描述] 基于以下的n值,设定/解除下划线模式: n(十进制) 0 1 意义 解除下划线模式 设定下划线模式(1 点粗) [注意] • 打印机不能给旋转字符以及反白字符打印下划线。 • 改变字符大小不影响当前下划线的粗细。

• 使用ESC !也可以设定或解除下划线模式。最后接收的命令设定有效。 • 该命令对英文和汉字字符都有效。 [缺省值] n = 0 [参照] ESC !

[例子] char SendStr[3];

SendStr[1] = ‟-‟;

SendStr[2] = 1;//单行下划线 PrtSendData( SendStr, 3);

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[0] = 0x1B; SendStr[1] = ‟-‟;

SendStr[2] = 1;//单行下划线 PrtSendData( SendStr, 3);

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;

N(十进制) 0 1 2 3 意义 解除旋转模式 设置90°顺时针旋转模式 设置180°顺时针旋转模式 设置270°顺时针旋转模式 [注意] • 当设置了下划线模式时,对于顺时针90旋转的字符,打印机不加下划线。?

• 在 旋转模式下,倍宽和倍高命令放大字符的方向与一般模式下倍高倍宽命令放大字符的方向相反。 [缺省值] n = 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>384),则被设置为可打印区域的最大值(N=384)。 [参照] ESC \\

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = ‟$‟;

SendStr[2] = 24;//3×8=24

PrtSendData( SendStr, 3); //绝对位置设为距左边界3毫米(24水平点距) 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个西文字符宽度,是从行的开始测量的。字符宽度包括字符间距的缺省字符宽。

• 该命令不受字符放大命令(ESC ! GS !)的影响。 • 该命令删除了之前设定的水平定位位置。

• 当设置n = 8时, 通过发送HT,打印位置被移到第九列。

• 可以设置8个定位位置(k = 8)。超过8定位位置的数据被处理为普通数据。 • 按升序传输[n]k, 并且在末尾放置一个NULL码0。

• 该命令中nk>n(k-1),如果nk小于或等于前面的值n(k-1),定位设定结束并且n(k-1)后面的数据按普通数据处理。

• ESC D NULL取消所有水平定位位置。

• 即使字符宽度变化,以前指定的水平定位位置也不变。

[缺省值] 缺省定位位置为字体A (12 × )的8个字符间隔(列9,17,25,…)。 24 [参照] HT

[例子] char SendStr[16]; char NextPos = 9; SendStr[0] = 0x1B; SendStr[1] = ‟D‟;

SendStr[2] = 11;// 距第一列10个字符间距 SendStr[3] = 17;// 距第一列16个字符间距

SendStr[4] = 23;// 距第一列22个字符间距 SendStr[5] = 29;// 距第一列28个字符间距 SendStr[6] = 0; // 结束 PrtSendData(SendStr,7) PrtSendData(“姓名”,4); PrtSendData(&NextPos,1); PrtSendData(“语文”,4); PrtSendData(&NextPos,1); PrtSendData(“数学”,4); PrtSendData(&NextPos,1); PrtSendData(”外语”,4); PrtSendData(&NextPos,1); PrtSendData(“总分”,4);

4.3.3 ESC 2

[名称] 选择缺省行间距 [格式] ASCII码 ESC 2 十六进制码 1B 32 十进制码 27 50

[描述] 将当前字符行间距设置为缺省行间距:1mm(8个垂直点距)。 [注意] • 该命令将影响图片与字符之间的行间距。 [参照] ESC 3

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = ‟2‟;

PrtSendData(SendStr,2);

4.3.4 ESC 3 n

[名称] 设置行间距

[格式] ASCII码 ESC 3 n 十六进制码 1B 33 n 十进制码 27 51 n [范围] 0 ≤ n ≤ 255

[描述] 设置字符行间距为n个垂直点距。

[注意] • 该命令将影响图片与字符之间的行间距。 [缺省值] n = 8 [参照] ESC 2

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = ‟3‟; SendStr[2] = 16;

PrtSendData(SendStr,3);//设置行间距为16个垂直点距(2mm)

4.3.5 ESC SP n

[名称] 设置字符间距

[格式] ASCII码 ESC SP n 十六进制码 1B 20 n 十进制码 27 32 n [范围] 0 ≤ n ≤ 255

[描述] 设置字符右侧的间距为n 个水平点距。

[注意] • 在倍宽模式下,字符右侧间距是正常值的两倍。当字符被放大时,字符右侧间距被放大同样的倍数。

• 该命令同时影响英文和汉字字符的设定。 [缺省值] n = 0

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = 0x20; SendStr[2] = 8;

4.3.6 ESC a n

[名称] 选择对齐方式

[格式] ASCII码 ESC a n 十六进制码 1B 61 n 十进制码 27 97 n [范围] 0 ≤ n ≤ 2

[描述] 将一行数据按照n指定的位置对齐。 n的可选值及意义: n 0 1 2 意义 左对齐 居中 右对齐 [注意] • 仅在一行的开始处理时,该命令才有效。 • 该命令在打印区域执行对齐。

• 该命令根据HT, ESC $或ESC \\对齐空白区域。 [缺省值] n = 0

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = „a‟; SendStr[2] = 1;

PrtSendData(SendStr,3);//设置水平对齐方式为居中

4.3.7 GS L nL nH

[名称] 设置左边距

[格式] ASCII码 GS L nL nH 十六进制码 1D 4C nL nH 十进制码 29 76 nL nH

[范围] 0 ≤ nL ≤ 255 0 ≤ nH ≤ 255

[描述] 左边距设置为N个 水平点距。nL nH 分别为无符号双字节整数的低位字节和高位字节,N=nL+nH*256,左边距为可打印区域左边距离打印区域宽度。 [注意] •该命令仅在一行的起始位置处理时有效。

• 左边距最大可设为336,如果超过336,则被当作336。 [缺省值] nL = 0, nH = 0

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = „L‟;

SendStr[2] = 16; SendStr[3] = 0;

PrtSendData(SendStr,4);//设置左边距为16水平点距(2mm) 4.4 图形/图象打印命令

4.4.1 ESC * m nL nH d1…dk

[名称] 打印黑白位图

[格式] ASCII码 ESC * m nL nH d1…dk 十六进制码 1B 2A m nL nH d1…dk 十进制码 27 42 m nL nH d1…dk [范围] m = 0, 1, 32, 33 0 ≤ nL ≤ 255 0 ≤ nH ≤ 1 0 ≤ d ≤ 255

[描述] 本命令只能打印高度为8点或24点,宽度不超过可打印区域的黑白位图。 各参数含义如下:

用m 选择位图的模式,位图的水平方向点数由nL 和nH 指定,如下所示: m 0 1 32 33 垂直点数(高度) 8 8 24 24 倍宽模式 两倍宽 单倍宽 两倍宽 单倍宽

nL nH分别为无符号型双字节整数N的高位和低位字节,表示水平方向上位图中的点数。N在单倍宽时最大值为384,在双倍宽时其值最大为192。 d1⋯dk 表示位图数据:具体格式见下图:

[例子] 例1: m=0(8点、两倍宽)d1表示打印的第1、2列点的数据,dk表示打印的第2k-1和2k列点的数据,bn表示字节的第n位,

如要打印以上图象,程序代码如下 char SendStr[16]; SendStr[0] = 0x1B; SendStr[1] = „*‟;

SendStr[2] = 0;//m=0(高度8点、倍宽) SendStr[3] = 9;//图象宽度为9dots SendStr[4] = 0;

SendStr[5] = 0;//图象点阵数据 SendStr[6] = 0xFF; SendStr[7] = 0x60; SendStr[8] = 0x1C; SendStr[9] = 0x03; SendStr[10] = 0x1C; SendStr[11] = 0x60; SendStr[12] = 0xFF; SendStr[13] = 0;

PrtSendData(SendStr,14);//打印图象

例2: m=1(8点、单倍宽)d1表示打印的第1列点的数据,dk表示打印的第k列点的数据,bn表示字节的第n位,

如要打印以上图象,程序代码如下 char SendStr[16]; SendStr[0] = 0x1B; SendStr[1] = „*‟;

SendStr[2] = 1;//m=1(高度8点、不放大) SendStr[3] = 9;//图象宽度为9dots SendStr[4] = 0;

SendStr[5] = 0;//图象点阵数据 SendStr[6] = 0xFF; SendStr[7] = 0x60; SendStr[8] = 0x1C; SendStr[9] = 0x03;

SendStr[10] = 0x1C; SendStr[11] = 0x60; SendStr[12] = 0xFF; SendStr[13] = 0;

PrtSendData(SendStr,14);//打印图象

例3:m=32(24点、两倍宽)d1、d2、d3表示打印的第1、2列点的数据,依此类推;bn表示字节的第n位,

如要打印以上图象,程序代码如下 char SendStr[]; SendStr[0] = 0x1B; SendStr[1] = „*‟;

SendStr[2] = 32;//m=32(高度24点、倍宽) SendStr[3] = 17;//图象宽度为17dots SendStr[4] = 0;

//图象数据

SendStr[5] = 0x00; SendStr[6] = 0x00; SendStr[7] = 0x00;//1 SendStr[8] = 0x00; SendStr[9] = 0x00; SendStr[10] = 0x03;//2 SendStr[11] = 0x00; SendStr[12] = 0x00; SendStr[13] = 0xFE;//3 SendStr[14] = 0x00; SendStr[15] = 0x3F; SendStr[16] = 0xE0;//4 SendStr[17] = 0x03; SendStr[18] = 0xE0; SendStr[19] = 0x30;//5 SendStr[20] = 0x0E; SendStr[21] = 0x00; SendStr[22] = 0x18;//6

SendStr[23] = 0x11; SendStr[24] = 0x00; SendStr[25] = 0x08;//7 SendStr[26] = 0x20; SendStr[27] = 0xC0; SendStr[28] = 0x0C;//8 SendStr[29] = 0x40; SendStr[30] = 0xC0; SendStr[31] = 0x0C;//9 SendStr[32] = 0x80; SendStr[33] = 0xC0; SendStr[34] = 0x0C;//10 SendStr[35] = 0x80; SendStr[36] = 0x40; SendStr[37] = 0x1C;//11 SendStr[38] = 0x80; SendStr[39] = 0x60; SendStr[40] = 0x1C;//12

SendStr[41] = 0x80; SendStr[42] = 0xFF; SendStr[43] = 0xF8;//13 SendStr[44] = 0x43; SendStr[45] = 0x9F; SendStr[46] = 0xF0;//14 SendStr[47] = 0x7F; SendStr[48] = 0x07; SendStr[49] = 0xC0;//15 SendStr[50] = 0x3E; SendStr[51] = 0x00; SendStr[52] = 0x00;//16 SendStr[53] = 0x00; SendStr[54] = 0x00; SendStr[55] = 0x00;//17 PrtSendData(SendStr,56);//打印图象

m=33(24点、单倍宽)d1、d2、d3表示打印的第1列点的数据,依此类推;bn表示字节的第n位,

如要打印以上图象,程序代码如下 char SendStr[]; SendStr[0] = 0x1B; SendStr[1] = „*‟;

SendStr[2] = 33;//m=33(高度24点、不放大) SendStr[3] = 17;//图象宽度为17dots SendStr[4] = 0;

//图象数据

SendStr[5] = 0x00; SendStr[6] = 0x00; SendStr[7] = 0x00;//1 SendStr[8] = 0x00; SendStr[9] = 0x00; SendStr[10] = 0x03;//2 SendStr[11] = 0x00; SendStr[12] = 0x00; SendStr[13] = 0xFE;//3 SendStr[14] = 0x00; SendStr[15] = 0x3F; SendStr[16] = 0xE0;//4 SendStr[17] = 0x03; SendStr[18] = 0xE0; SendStr[19] = 0x30;//5

SendStr[20] = 0x0E; SendStr[21] = 0x00; SendStr[22] = 0x18;//6 SendStr[23] = 0x11; SendStr[24] = 0x00; SendStr[25] = 0x08;//7 SendStr[26] = 0x20; SendStr[27] = 0xC0; SendStr[28] = 0x0C;//8 SendStr[29] = 0x40; SendStr[30] = 0xC0; SendStr[31] = 0x0C;//9 SendStr[32] = 0x80; SendStr[33] = 0xC0; SendStr[34] = 0x0C;//10 SendStr[35] = 0x80; SendStr[36] = 0x40; SendStr[37] = 0x1C;//11 SendStr[38] = 0x80; SendStr[39] = 0x60; SendStr[40] = 0x1C;//12 SendStr[41] = 0x80; SendStr[42] = 0xFF; SendStr[43] = 0xF8;//13 SendStr[44] = 0x43; SendStr[45] = 0x9F; SendStr[46] = 0xF0;//14 SendStr[47] = 0x7F; SendStr[48] = 0x07; SendStr[49] = 0xC0;//15 SendStr[50] = 0x3E; SendStr[51] = 0x00; SendStr[52] = 0x00;//16 SendStr[53] = 0x00; SendStr[54] = 0x00; SendStr[55] = 0x00;//17 PrtSendData(SendStr,56);//打印图象

[注意] • 如果m的值超出了指定的范围,可能出现不可预料的结果。

• 如果位图数据输入超出了一行上能被打印的点数,那么超出的数据被忽略。 • 在打印一个位图之后,打印机返回常规数据处理模式。

• 该命令不受打印模式(粗体、重叠、下划线、字符大小、或反白打印)影响。

4.4.2 GS * x y d1…dk

[名称] 定义下传位图

[格式] ASCII码 GS * x y d1…dk 十六进制码 1D 2A x y d1…dk 十进制码 29 42 x y d1…dk [范围] 1 ≤ x ≤ 255 1 ≤ y ≤ 8 x ? y ≤ 1536 0 ≤ d ≤ 255 k=x*y*8

[描述] 用x 和y 指定的点数定义下传位图。 • x*8 为水平方向点数。 • y*8 为垂直方向点数。

[注意] • 如果x ∗ y 超出了指定范围,则禁止该命令。

• d 表示位图数据。数据(d) 指定打印位为1,不打印位为0。 • 用该命令定义的下传位图,通过 GS / n命令打印 • 在下列情况下,清除下传位图定义: 1. 执行ESC @ 。

2. 打印机复位或关闭电源。

[例子] 下传位图与打印数据之间关系如下图例子所示。 如果x=2,y=3,d1…dk 的值如下图,则位图如右图所示。

如要定义以上图象,程序代码如下 char SendStr[]; SendStr[0] = 0x1D; SendStr[1] = '*';

SendStr[2] = 2;//x=2(宽度16点) SendStr[3] = 3;//y=3(高度24点) //图象数据

SendStr[4] = 0x00; SendStr[5] = 0x00; SendStr[6] = 0x00;//1 SendStr[7] = 0x00; SendStr[8] = 0x00; SendStr[9] = 0x03;//2 SendStr[10] = 0x00; SendStr[11] = 0x00; SendStr[12] = 0xFE;//3 SendStr[13] = 0x00; SendStr[14] = 0x3F; SendStr[15] = 0xE0;//4 SendStr[16] = 0x03; SendStr[17] = 0xE0; SendStr[18] = 0x30;//5 SendStr[19] = 0x0E; SendStr[20] = 0x00; SendStr[21] = 0x18;//6 SendStr[22] = 0x11; SendStr[23] = 0x00; SendStr[24] = 0x08;//7 SendStr[25] = 0x20; SendStr[26] = 0xC0; SendStr[27] = 0x0C;//8 SendStr[28] = 0x40; SendStr[29] = 0xC0; SendStr[30] = 0x0C;//9 SendStr[31] = 0x80; SendStr[32] = 0xC0; SendStr[33] = 0x0C;//10 SendStr[34] = 0x80; SendStr[35] = 0x40; SendStr[36] = 0x1C;//11 SendStr[37] = 0x80; SendStr[38] = 0x60; SendStr[39] = 0x1C;//12

SendStr[40] = 0x80; SendStr[41] = 0xFF; SendStr[42] = 0xF8;//13 SendStr[43] = 0x43; SendStr[44] = 0x9F; SendStr[45] = 0xF0;//14 SendStr[46] = 0x7F; SendStr[47] = 0x07; SendStr[48] = 0xC0;//15

SendStr[49] = 0x3E; SendStr[50] = 0x00; SendStr[51] = 0x00;//16 PrtSendData(SendStr,52);//定义图象 SendStr[0] = 0x1D; SendStr[1] = 0x2F; SendStr[2] = 0x00;

PrtSendData(SendStr,3);//打印图象

4.4.3 GS / n

[名称] 打印下传位图 [格式] ASCII码 GS / n 十六进制码 1D 2F n 十进制码 29 47 n [范围] 0 ≤ n ≤ 3

[描述] 用n 指定的模式打印由GS *命令定义的下传位图。 n从下表选择模式: n 0 1 2 3 放大模式 普通 倍宽 倍高 倍宽倍高 [注意] • 如果位图数据未定义,则忽略该命令。

• 该命令不受打印模式(粗体、重叠、下划线、字符大小、或反白打印)影响。 • 如果将要打印的下传位图超出可打印区域,则超出的数据不打印。

• 如果由GS L设定的打印区域宽度小于图象宽度,减少左边缘空白量以打印图形。 • 如果位图高度超出点,则忽略该命令,如果用倍高模式打印,则位图高度不能超过32点。

[参照] GS *

[例子] 参见 4.4.2 GS * 例子

4.4.4 FS P n

[名称] 打印预存储位图 [格式] ASCII码 FS P n 十六进制码 1C 50 n 十进制码 28 80 n [范围] 0 ≤ n ≤ 7

[描述] 本命令打印预先存储在打印机非易失存储器中的2值位图。打印机非易失存储器中的位图可通过

PC机上的专用工具软件生成并写入,位图宽度最大为128,最大高度为。 n为指定的位图编号 。

[注意] • 指定编号的位图还未定义时,该命令无效。 • 位图必须是2值位图。

• 该命令不受打印模式(粗体、重叠、下划线、字符大小、或反白打印)影响。 • 如果要打印的位图宽度超过一行,则超出的部分不打印。

• 需用专用的工具上传打印位图,请参见【三、MPT-II打印机工具软件】。通过这种方式上传的位图不会丢失,除非重新上传其他位图将其覆盖。 [参照] ESC *, GS /

[例子] char SendStr[4]; SendStr[0] = 0x1C; SendStr[1] = „P‟; SendStr[2] = 1;

PrtSendData(SendStr,3);//打印编号为1的预存储位图 4.5 条码打印命令

4.5.1 GS h n

[名称] 设置条形码高度 [格式] ASCII码 GS h n 十六进制码 1D 68 n 十进制码 29 104 n [范围] 1 ≤ n ≤ 40

[描述] 选择条形码高度。 n 设定垂直方向的点数。

[注意] • 如果n>40,条码高度将被设为40。 [缺省值] n = 36 [参照] GS k

[例子] 参见 4.5.5 GS k 例子

4.5.2 GS w n

[名称] 设置条形码宽度 [格式] ASCII码 GS w n 十六进制码 1D 77 n 十进制码 29 119 n [范围] 1 ≤ n ≤ 4

[描述] 设置条形码水平尺寸。

n 取值定义如下: N 1 2 3 4 多级条形码单位宽度(mm) 二进制条码宽度 窄条线宽度 0.125 0.25 0.375 0.50 0.125 0.25 0.375 0.50 宽条线宽度 0.25 0.50 0.75 1.0

• 以下是多级条形码:

UPC-A, UPC-E, EAN13, EAN8, CODE93 • 以下是二进制条形码: CODE39, CODABAR [缺省值] n = 2

[参照] GS k

[例子] 参见 4.5.5 GS k 例子

4.5.3 GS H n

[名称] 选择条码可识读字符的打印位置 [格式] ASCII码 GS H n 十六进制码 1D 48 n 十进制码 29 72 n [范围] 0 ≤ n ≤ 2

[描述] 打印条形码时,选择可识读字符的打印位置。

n 选择打印位置,如下所示: n 0 1 2 识读字符位置 不打印 条形码上方 条形码下方 [注意] • 用GS f 所指定的字体打印可识读字符。

• 条码可识读字符不受打印模式(粗体、重叠、下划线、字符大小、或反白打印)影响。 [缺省值] n = 0 [参照] GS f, GS k

[例子] 参见 4.5.5 GS k 例子

4.5.4 GS f n

[名称] 选择条码识读字符字体 [格式] ASCII码 GS f n 十六进制码 1D 66 n 十进制码 29 102 n [范围] n = 0, 1

[描述] 打印条形码时,为识读字符选择一种字体。 n 的可选值及意义 n 0 1 识读字符字体 字体A (12 ∗ 24) 字体B (8 ∗ 16) [注意] • 在由GS H 指定的位置打印条码识读字符。

• 条码识读字符不受打印模式(粗体、重叠、下划线、字符大小、或反白打印)影响。 [缺省值] n = 0

[参照] GS H, GS k

[例子] 参见 4.5.5 GS k 例子

4.5.5 GS k

[名称] 打印条码

[格式] 该命令有两种格式: 格式1(0 ≤ m ≤ 8)

ASCII码 GS k m d1…dk NUL 十六进制码 1D 6B m d1…dk 00 十进制码 29 107 m d1…dk 0 格式2(65 ≤ m ≤ 73)

ASCII码 GS k m n d1…dn 十六进制码 1D 6B m n d1…dn 十进制码 29 107 m n d1…dn

[范围] 0 ≤ m ≤ 8 (k 和d 取决于使用的条码系统) 65 ≤ m ≤ 73 (n 和d取决于使用的条码系统) n为打印条码的数据长度

[描述] 选定条码系统并打印条码。 m定义所使用的条码系统,如下表: m 0, 65 1, 66 2, 67 3, 68 4, 69 5, 70 6, 71 7, 72 8, 73 条码类型 UPC-A UPC-E EAN8 EAN13 CODE39 INTERLEAVED 25(ITF) CODABAR CODE93 CODE128 [注意] • 当使用格式1的命令时,如果条码类型中规定了条码的数据长度,则k(打印机接收到的条码数据长度)应当等于规定的数据长度,如果不等于规定的数据长度,则该指令无效。有关条码的数据位长度见【附录B】。

• 打印机接收到的条码数据字符应该包含在条码类型规定的字符集中,如果条码数据字符中有字符超出了字符集,该命令无效。有关条码的字符集见附录A。 • 当使用格式2的命令时,n的值要等于条码的规定数据长度(如果该类型的条码规定了数据位长度的话),如果n值不等于条码的规定数据位长度,那么该命令无效,有关条码的数据位长度见【附录B】。

• INTERLEAVED 25(ITF)条码的数据长度为偶数,如果使用格式1打印ITF条码,那么k(打印机接收到的条码数据长度)的值要为偶数,如果为奇数,最后一位数据将被忽略。如果使用格式2打印ITF条码,那么n值要为偶数,如果n为奇数,那么最后一位数据将被忽略。 • 如果水平方向尺寸超出了打印区域,超出的部分将被忽略。

• 该命令不受打印模式(粗体、重叠、下划线、字符大小、或反白打印)影响。 • 打印条码时要遵守条码的编码规范,否则将会导致条码无法扫描。

• 打印机不计算校验码,如果条码需要校验码,需将校验码包含在条码数据当中,打印机不负责核对校验码的正误,用户计算校验码错误将导致条码无法扫描。

• 如果可识读字符被设置成打印,CODE93和CODE128码的中的不可见字符不能打印出来,此时用‘□’取代。

• CODE39码不包括扩展CODE39码(EXTERN CODE 39)。 • CODE93码不包括扩展CODE93码(EXTERN CODE 93)。

• CODE12码数据串的头部必须是编码集选择字符(CODE A, CODE B, 或CODE C),在一个条码内部也可切换编码集。用字符 ‘{’和一个字符组合用以定义特殊功能。通过连续传送两次 ‘{’定义ASCII字符‘{’。如下图 ASCII {A {B {C {S {1 {2 {3 {4 [例子] char SendStr[16]; SendStr[0] = 0x1D; SendStr[1] = „h‟;

SendStr[2] = 40;

PrtSendData(SendStr,3);//设置条码高度为40垂直点距(5mm) SendStr[0] = 0x1D; SendStr[1] = „w‟; SendStr[2] = 2;

PrtSendData(SendStr,3);//设置条码宽度为2 SendStr[0] = 0x1D; SendStr[1] = „H‟; SendStr[2] = 2;

PrtSendData(SendStr,3);//设置条码可识读字符位置为条码下方 SendStr[0] = 0x1D; SendStr[1] = „f‟; SendStr[2] = 0;

PrtSendData(SendStr,3);//设置条码可识读字符为12*24点阵字符 SendStr[0] = 0x1D; SendStr[1] = „k‟; SendStr[2] = 4;

SendStr[3] = „*‟; SendStr[4] = „T‟; SendStr[5] = „E‟ ; SendStr[6] = „S‟; SendStr[7] = „T‟; SendStr[8] = „8‟ ; SendStr[9] = „0‟; SendStr[10] = „5‟; SendStr[11] = „2‟ ; SendStr[12] = „*‟; SendStr[13] = 0;

PrtSendData(SendStr,14);//用格式1打印CODE39码“TEST8052”

HEX 7B, 41 7B, 42 7B, 43 7B, 53 7B, 31 7B, 32 7B, 33 7B, 34 功能 选择编码集A 选择编码集B 选择编码集C SHIFT FNC1 FNC2 FNC3 FNC4 4.6 曲线打印命令

4.6.1 GS ‘

[名称] 打印一水平行上n个线段

[格式] ASCII码 GS „ n x1sL x1sH x1eL x1eH … xnsL xnsH xneL xneH 十六进制码 1D 27 n x1sL x1sH x1eL x1eH … xnsL xnsH xneL xneH 十进制码 29 39 n x1sL x1sH x1eL x1eH … xnsL xnsH xneL xneH [范围] 0 ≤ n ≤ 8

[描述] 如下打印放大图所示:每条曲线都是由很多水平线段(点可视为长度为1的线段)组成。本指令为打印一水平行上n个线段,连续使用该指令可以打印出用户所需要的线段。

xksL 第k条线段起始点横向坐标的低位; xksH 第k条线段起始点横向坐标的高位;

xkeL 第k条线段结束点横向坐标的低位; xkeH 第k条线段结束点横向坐标的高位;

坐标从打印区域最左侧开始计算,最小值为0,最大值为383,也就是说xkeL+xkeH*256最大值为383。

线段的数据不必按照顺序排列;

[注意] • 当打印一个点时,xkeL=xksL, xkeH=xksH。 [参照] GS “

打印图例

[例子] 打印sin,cos函数的连续曲线,打印结果如右图:

SendStr[0] = 0x1D; SendStr[1] = 0x27;

SendStr[2] = 3; //三条线段,分别为x坐标轴,sin函数和cos函数曲线 SendStr[3] = 180; //x坐标轴位置为180 SendStr[4] = 0; SendStr[5] = 180; SendStr[6] = 0;

for(i=1;i<1200;i++){

y1 = sin(i/180*3.1416)*(380-30)/2+180; //计算sin函数坐标点 y2 = cos(i/180*3.1416)*(380-30)/2+180; //计算cos函数坐标点 if(i==1) { y1s = y1; y2s = y2; } PrtSendData( SendStr, 7 );

PrtSendData( &y1s, 2 ); //sin函数曲线位于该行的线段的起始点 PrtSendData( &y1, 2 ); //sin函数曲线位于该行的线段的结束点 PrtSendData( &y2s, 2 ); //cos函数曲线位于该行的线段的起始点 PrtSendData( &y2, 2 ); //cos函数曲线位于该行的线段的结束点 y1s = y1; //设置下一行打印时sin函数曲线位于该行的起始点坐标 y2s = y2; //设置下一行打印时cos函数曲线位于该行的起始点坐标 }

4.6.2 GS “

[名称] 打印曲线上的文字

[格式] ASCII码 GS “ n xL xH c1 c2 … NULL 十六进制码 1D 22 n xL xH c1 c2 … 00 十进制码 29 34 n xL xH c2 … 0 [范围] 0 ≤ n ≤ 1

[描述] 该命令按当前字体打印曲线上文字,打印文字时,本命令自动将文字旋转了90度(字符串整体顺时针旋转); n 文字编号;

xL xH为字符横向坐标的;

c1 c2 … NULL 为以0结尾的字符串。

[注意] • 只有当该命令出现在两个ESC ‘命令之间时,该命令才有效;

• 打印机接收到该命令后,会随后从当前行开始打印旋转90度后的文字;

• 当该水平点行上已经有字符时,如果要打印另外的字符,需将文字编号设为另外的值,但只限于0和1;

• 每一水平点行上最多只能出现两个字符。 [参照] GS ‘

[例子] 打印sin,cos函数的连续曲线,打印结果如图: char SendStr1[8], SendStr2[16]; int i;

short y1,y2,y1s,y2s; //打印y轴轴线(一条线

SendStr1[0] = 0x1D;

SendStr1[1] = 0x27;

SendStr1[2] = 1; //一条线段 SendStr1[3] = 30; //起始点为30 SendStr1[4] = 0;

SendStr1[5] = 104; //结束点360 SendStr1[6] = 1;

//打印坐标原点文字“0”

PrtSendData(SendStr,7); SendStr2[0] = 0x1D; SendStr2[1] = 0x22;

SendStr2[2] = 0; //文字编号0

SendStr2[3] = 150; //横向坐标为150 SendStr2[4] = 0;

SendStr2[5] = „0‟; //字符„0‟ SendStr2[6] = 0;

PrtSendData(SendStr2,7); //打印曲线

SendStr1[0] = 0x1D; SendStr1[1] = 0x27;

SendStr1[2] = 3; //三条线段,分别为x坐标轴,sin函数和cos函数曲线 SendStr1[3] = 180; //x坐标轴位置为180 SendStr1[4] = 0; SendStr1[5] = 180; SendStr1[6] = 0; //文字

SendStr2[0] = 0x1D; SendStr2[1] = 0x22; SendStr2[2] = 0; SendStr2[3] = 150; SendStr2[4] = 0; SendStr2[5] = 0; SendStr2[6] = 0;

for(i=1;i<1200;i++){

y1 = sin(i/180*3.1416)*(380-30)/2+180; //计算sin函数坐标点 y2 = cos(i/180*3.1416)*(380-30)/2+180; //计算cos函数坐标点 if(i==1) { y1s = y1; y2s = y2; } PrtSendData( SendStr1, 7 );

PrtSendData( &y1s, 2 ); //sin函数曲线位于该行的线段的起始点 PrtSendData( &y1, 2 ); //sin函数曲线位于该行的线段的结束点 PrtSendData( &y2s, 2 ); //cos函数曲线位于该行的线段的起始点 PrtSendData( &y2, 2 ); //cos函数曲线位于该行的线段的结束点 y1s = y1; //设置下一行打印时sin函数曲线位于该行的起始点坐标

打印图例

y2s = y2; //设置下一行打印时cos函数曲线位于该行的起始点坐标 if(i%180==0) SendStr2[5] = „0‟+i/180; //打印x轴标尺 PrtSendData( SendStr1, 7 ); }

4.7 自定义字符命令

4.7.1 ESC % n

[名称] 选择/取消用户自定义字符集 [格式] ASCII码 ESC % n 十六进制码 1B 25 n 十进制码 27 37 n [范围] 0 ≤ n ≤ 255

[描述] 选择或取消用户自定义字符集。

当n的最低位(LSB)为0时,取消用户自定义字符集。 当n的最低位(LSB)为1时,选择用户自定义字符集。

[注意] • 当取消用户自定义字符集时,自动选择内部字符集。 • n 仅最低有效位可用。 [缺省值] n = 0

[参照] ESC &, ESC ? [例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = „%‟; SendStr[2] = 1;

PrtSendData(SendStr,3);//选择用户自定义字符集

4.7.2 ESC & y c1 c2 [x1 d1...d(y * x1)]...[xk d1...d(y * xk)]

[名称] 定义用户自定义字符

[格式] ASCII码 ESC & y c1 c2 [x1 d1...d(y * x1)]...[xk d1...d(y * xk)] 十六进制码 1B 26 y c1 c2 [x1 d1...d(y * x1)]...[xk d1...d(y * xk)] 十进制码 27 38 y c1 c2 [x1 d1...d(y * x1)]...[xk d1...d(y * xk)] [范围] y = 3 字体A (12 ∗ 24) y = 2 字体B (8 ∗ 16) 32 ≤ c1 ≤ c2 ≤ 126

x = 12 字体A (12 ∗ 24) x = 8 字体B (8 ∗ 16) 0 ≤ d1 ... d(y ∗ xk) ≤ 255 [描述] 定义用户自定义字符。 y 指定垂直方向字节数, 当定义字体A的字符时y=3, 当定义字体B的字符时y=2,

• c1 指定起始字符编码,c2 指定结束字符编码。 • x 指定水平方向点数, 当定义字体A的字符时x=12, 当定义字体B的字符时y=8,

• k=c2-c1+1

[注意] • 可定义字符编码的范围:从0x20到0x7E的ASCII 码(95 字符)。 • 可定义多个字符的连续字符编码。当仅需要一个字符时,令c1 = c2。 • d 是字符的点阵数据。

• 定义用户自定义字符的数据是(y * x) 字节。

• 设定打印点的相应位为1或不打印点的相应位为0。

• 该命令可对每一种字体定义不同的用户自定义字符模式。用ESC ! 设定字体。 • 用户自定义字符和下传位图总数据量不超过32k。 • 在下列情况下,用户自定义字符被清除: 1.执行ESC @。 2.执行ESC ?。

3.打印机复位或关闭电源。

[例子] y=3,x=12 将字符’B’(编码为0x42)定义为如下12*24点阵字符

char SendStr[16]; SendStr[0] = 0x1B;

SendStr[1] = „&‟;

SendStr[2] = 3; //y=3 字符高度为24

SendStr[3] = 0x42; // 字符‟B‟(编码0x42)被重新定义 SendStr[4] = x042;

SendStr[5] = 12; //x=12 字符宽度为12

SendStr[6] = 0x0F; SendStr[7] = 0xFF; SendStr[8] = 0xFF;//1 SendStr[9] = 0x3F; SendStr[10] = 0xFF; SendStr[11] = 0xFF;//2 SendStr[12] = 0x20; SendStr[13] = 0x00; SendStr[14] = 0x40;//3 SendStr[15] = 0x40; SendStr[16] = 0x00; SendStr[17] = 0x20;//4

SendStr[18] = 0x40; SendStr[19] = 0x80; SendStr[20] = 0x20;//5 SendStr[21] = 0x40; SendStr[22] = 0x80; SendStr[23] = 0x20;//6 SendStr[24] = 0x40; SendStr[25] = 0x80; SendStr[26] = 0x20;//7 SendStr[27] = 0x61; SendStr[28] = 0x80; SendStr[29] = 0x60;//8 SendStr[30] = 0x3F; SendStr[31] = 0x60; SendStr[32] = 0xC0;//9 SendStr[33] = 0x1E; SendStr[34] = 0x3F; SendStr[35] = 0x80;//10 SendStr[36] = 0x00; SendStr[37] = 0x1F; SendStr[38] = 0x00;//11 SendStr[39] = 0x00; SendStr[40] = 0x00; SendStr[41] = 0x00;//12 PrtSendData(SendStr,42);//选择用户自定义字符集 [缺省值] 内部字符集

[参照] ESC %, ESC ?, FS 2

4.7.3 ESC ?

[命令] 清除用户自定义字符 [格式] ASCII码 ESC ? n 十六进制码 1B 3F n 十进制码 27 63 n [范围] 32 ≤ n ≤ 126

[描述] 清除用户自定义字符。

[注意] • 该命令清除指定的用户自定义字符,字符编码由n 指定。在用户自定义字符被取消后,以内部字符相应模式打印。

• 如果没有为指定字符代码定义一个用户自定义字符,则打印机忽略该命令。 [参照] ESC &, ESC % [例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = „?‟; SendStr[2] = 0x42;

PrtSendData(SendStr,3);//清除为0x42定义的字符

4.8 汉字命令

4.8.1 FS &

[名称] 设定汉字模式 [格式] ASCII码 FS & 十六进制码 1C 26 十进制码 28 38

[描述] 选择汉字字符模式。

[注意] • 打开电源时,打印机已选择汉字模式。 [参照] FS ., FS C

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = „&‟;

PrtSendData(SendStr,2);//设定汉字模式

4.8.2 FS 2 c1 c2 d1…dk

[名称] 定义用户自定义汉字字符

[格式] ASCII码 FS 2 c1 c2 d1…dk 十六进制码 1C 32 c1 c2 d1…dk 十进制码 28 50 c1 c2 d1…dk

[范围] c1 和c2 表示所定义的字符的代码。 c1 = FEH A1H ≤ c2 ≤ FEH 0 ≤ d ≤ 255 k = 72

[描述] 定义用户自定义汉字字符, 由c1 和c2 指定字符代码。

[注意] • c1 和c2 表示所定义的字符的代码。c1 为第一个字节, c2 为第二字节。 • d 表示该字符的点阵数据。相应位置为1,打出该点,相应位为0,不打该点。 定义数据的格式与ESC &指令相同

• 当用户选择字体A时,定义的汉字应为24点阵汉字,选择字体B时,定义的汉字应为16点阵汉字

[缺省值] 全空白。 [参照] ESC &

4.8.3 FS .

[名称] 取消汉字字符模式 [格式] ASCII码 FS . 十六进制码 1C 2E

十进制码 28 46

[描述] 取消汉字字符模式,当取消汉字字符模式后,超过0x80的编码仍然当作ASCII字符处理,将不再打印汉字,除非再用FS &命令选择汉字模式。 [注意] • 打开电源时,打印机选择汉字模式。 [参照] FS &, FS C

[例子] char SendStr[4]; SendStr[0] = 0x1B; SendStr[1] = „.‟;

PrtSendData(SendStr,2);//取消汉字模式

附录

A 打印字符集

本打印字符集0x80及之后的编码为取消汉字打印模式下打印出的字符。有关汉字字符,请参见国标GB-2312和微软代码页CP936。 HEX 20 28 30 38 40 48 50 58 60 68 70 78 80 88 90 98 HEX ! ) 1 9 A I Q Y a i q y ü ë æ Ö HEX 22 “ HEX 23 # HEX 24 $ HEX 25 % HEX 26 & HEX 27 „ (空21 格) ( 0 8 @ H P X ` h p x Ç ê É ÿ29 31 39 41 49 51 59 61 69 71 79 81 91 99 2A * 32 42 52 62 72 82 92 2 B R b r é Æ 3A : 4A J 5A Z 6A j 7A z 8A è 9A Ü A2 ó AA BA CA DA EA ¬ ⌮ ⍆ ⌤ Ω B2 ⍑ C2 〉 D2 ⍂ E2 г F2 ≥ FA · 2B + 33 43 53 63 73 83 93 3 C S c s â ô 3B ; 4B K 5B [ 6B k 7B { 8B ï 9B ¢ A3 ú AB ½ B3 ⌣ BB ⌴ C3 ⌨ CB ⍃ D3 ⌶ DB ⍌ E3 П EB δ F3 ≤ FB √ 2C , 34 44 54 74 84 94 4 D T c t ä ö 3C < 4C L 5C \\ 6C l 7C | 8C î 9C £ A4 ñ AC BC CC DC EC ¼ ⌺ ⌽ ⍋ ∞ B4 〈 C4 ⌢ D4 ⌵ E4 Σ F4 ⌠ FC ⁿ 2D - 35 45 55 65 75 85 95 5 E U e u à! ò 3D = 4D M 5D ] 6D m 7D } 8D ì 9D ¥ A5 Ñ AD BD CD DD ED FD ¡ ⌹ ⌭ ⍍ φ ² B5 ⌾ C5 ⌬ D5 ⌯ E5 σ F5 ⌡ 2E . 36 46 56 66 76 86 96 6 F V f v å û 3E > 4E N 5E ^ 6E n 7E ~ 8E Ä 9E ₧ A6 ª AE BE CE DE « ⌸ ⍉ ⍎ B6 ⌿ C6 ⌻ D6 ⌰ E6 μ EE Є F6 ÷ FE ▪ 2F / 37 47 57 67 77 87 97 7 G W g w ç ù 3F ? 4F O 5F _ 6F o 7F 8F Å 9F ƒ A7 º AF » B7 ⌳ BF ⌥ C7 ⌼ CF ⍄ D7 ⍈ DF ⍊ E7 γ EF ∩ F7 ≈ FF A0 á A8 ¿ B0 ⍏ B8 ⌲ C0 ⌦ C8 ⌷ D0 ⍅ D8 ⍇ E0 α E8 Φ F0 ≡ F8 °

A1 í A9 ⌐ B1 ⍐ B9 ⍀ C1 ⌫ C9 ⌱ D1 ⍁ D9 ⌧ E1 β E9 θ F1 ± F9 • B 条码

UPC-A: UPC-A编码要符合UCC组织(http://www.uccnet.org )的规范。 UPC-E: UPC-E编码要符合UCC组织(http://www.uccnet.org )的规范。 ENA8: ENA8编码要符合EAN组织(http://www.ean-int.org)的规范。 ENA13: ENA13编码要符合EAN(http://www.ean-int.org)组织的规范。

CODE39: 又称39码,CODE39的起始位字符和终止位字符必须为‟*‟,且起始位和终止位之间不能包含字符‟*‟ ,数据中可包含校验码也可不包含校验码,校验码有固定算法。

ITF: 又称INTERLEAVED 25,交叉25码,INTERLEAVED 2 of 5,数据位长度只能为偶数,数据中可包含校验码也可不包含校验码,校验码有固定算法。

CODABAR: 又称库德巴码,起始位和终止位必须为A、B、C、D四个字符中的一个,起始位字符宇终止位字符不必相同,数据中可包含校验码也可不包含校验码,校验码由编码人自定义。

CODE93: CODE93的起始位字符和终止位字符必须为‟*‟,且起始位和终止位之间不能包含字符‟*‟,CODE93数据最后必须包含两个字符的校验码,校验码有固定算法。

B.2 条码长度字符集表

条码类型 UPC-A UPC-E EAN8 EAN13 CODE39 长度 12 8 8 13 无 字符集(ASCII) 0~9 0~9 0~9 0~9 0~9 A~Z - . SP $ / + % * 0~9 0~9 - : / % . A~D 0~9 A~Z - . SP $ / + % * INTERLEAVED 25 偶数 CODABAR 无 CODE93

无 C.预印刷黑标说明

如果用户使用预印刷黑标进行票据定位,印刷黑标时务必遵守以下黑标预印刷规范,否则可能导致打印机无法识别黑标。

印刷位置:如左图所示,黑标应印刷于文字面的右侧边缘。 宽度范围:宽度≥7mm

高度范围:4mm≤高度≤6mm

对红外光的反射率:<10% (纸张黑标宽度其他部分对于红外光的反射率>65%) Hps:Hps为打印机黑标下边缘距打印起始上边缘的距离。 0mm≤Hps≤1mm

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务