打印机开发包,接口说明文档,打印示例程序下载地址:Caysn打印机IOS开发包、接口说明文档、打印示例程序_20170717
Framework版本要求:IOS8
Framework架构:armv7 armv7s arm64 i386 x86_64
Framework类型:静态库
说明文档:(压缩包里有附带接口说明文档,网页上也保留一份)
备注:
和上一版本相比
增加了MemoryIO
增加了返回值(所有的打印函数都有返回值)
增加了单据查询指令(POS_TicketSucceed)
一 概述
1 NETPrinting、BLEPrinting处理底层读写。
他们分别有自己的打开,关闭函数,有自己的回调接口。
继承自IO、重写了IO的3个重要函数。
- (bool)IsOpened;
- (int)Write:(Byte * ) buffer offset:(int) offset count:(int) count;
- (int)Read:(Byte *)buffer offset:(int)offset count:(int)count timeout:(int)timeout;
2 POSPrinting和 LabelPrinting 封装了打印指令并持有一个IO接口。
POSPrinting封装了ESC/POS指令
LabelPrinting封装了标签打印指令
他们按照指令集的格式将数据组织好,然后调用IO的Write函数进行写入数据,调用Read函数读取数据。
3 MemoryIO
该类可以将指令写到内存中(而不是发送给打印机),后续通过GetBuffer来获取打印数据。可用于调试,也可以用于其他用途(例如,将获取到的指令,通过别的接口发送出去)
二使用
使用时,先实例化一个IO子类。以蓝牙打印为例:
① 先实例化一个POSPrinting(为方便描述,设变量名为pos),这个时候,直接调用POS_XXX系列函数,会发现并不能打印,因为这时候POSPrinting并没有持有一个可读写的IO。需要进行②③步。
② 先实例化一个BLEPrinting(为方便描述,设变量名为ble),然后调用Open函数连接到蓝牙打印机。
③ 连接成功之后,调用pos的SetIO,将让pos持有ble,这样,后续的POS_XXX系列函数,就会通过ble的Write和Read与打印机通讯。
三各个类的区别
① BLEPrinting、NETPrinting、IO这三者的区别
A) IO是父类,提供统一的接口,供POSPrinting和LabelPrinting使用。
B) BLEPrinting是用于蓝牙通讯的,除了基本的Open Close IsOpened Read Write之外,还有
scan 扫描蓝牙打印机,扫描成功会调用回调接口BLEPrintingDiscoverDelegate
stopScan 停止扫描
BLEPrintingOpenDelegate Open成功之后会回调该接口
BLEPrintingDiscoverDelegate 扫描到打印机之后会回调该接口
BLEPrintingReceiveDelegate 收到数据之后会回调该接口
BLEPrintingDisconnectDelegate 蓝牙断开之后会回调该接口(多次调用Close不会调用)
C) NETPrinting是用于网络通讯的,除了基本的Open Close IsOpened Read Write之外,还有
NETPrintingOpenDelegate Open成功之后会回调该接口
NETPrintingDisconnectDelegate 连接断开之后会回调该接口(多次调用Close不会调用)
② POSPrinting、LabelPrinting 这两者的区别
A) POSPrinting封装了便携指令集
B) LabelPrinting封装了标签指令集。
普通热敏打印机(只支持ESC/POS指令集),只能使用POSPrinting控制打印机打印。
标签打印机(支持ESC/POS指令集、标签指令集),可以使用POSPrinting控制打印机打印,也可以用LabelPrinting控制打印机打印。
两套指令不能穿插使用,意思是:
使用LabelPrinting控制打印时,PageBegin 到PagePrint之间,不能穿插POSPrinting函数。
四 函数说明
POSPrinting
普通行式打印
POS_PrintText
描述:打印文本
Syntax
- (bool)POS_PrintText:(char *)pszString x:(int)x nWidthTimes:(int)nWidthTimesnHeightTimes:(int)nHeightTimes nFontType:(int)nFontTypenFontStyle:(int)nFontStyle
Parameters
pszString
要打印的内容。UTF8编码字符串。
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x |
含义 |
-1 |
左对齐 |
-2 |
居中对齐 |
-3 |
右对齐 |
大于等于0 |
横坐标 |
nWidthScale
指定宽度放大倍数 [0,7]
nHeightScale
指定高度放大倍数 [0,7]
nFontType
字体类型
0 标准字体
1 压缩字体
nFontStyle
指定字体风格,可以为下表中的一个或者若干个(相加即可)
Value |
Meaning |
0x00 |
正常 |
0x08 |
加粗 |
0x80 |
1点粗的下划线 |
0x100 |
2点粗的下划线 |
0x200 |
倒置(只在行首有效) |
0x400 |
反显(黑底白字) |
0x1000 |
每个字符顺时针旋转 90 度 |
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
POS_PrintText并不立刻打印,需要调用POS_FeedXXX系列函数,才会把行缓冲区中的内容打印出来。
同一行不支持多种对齐方式。
POS_PrintBarcode
打印条码
Syntax
- (bool)POS_PrintBarcode:(char *)pszString x:(int)x nType:(int)nTypenUnitWidth:(int)nUnitWidth nHeight:(int)nHeight nHriFontType:(int)nHriFontTypenHriFontPosition:(int)nHriFontPosition
Parameters
pszString
条码内容
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x |
含义 |
-1 |
左对齐 |
-2 |
居中对齐 |
-3 |
右对齐 |
大于等于0 |
横坐标 |
nType
Value |
Meaning |
0x41 |
UPC-A |
0x42 |
UPC-C |
0x43 |
JAN13(EAN13) |
0x44 |
JAN8(EAN8) |
0x45 |
CODE39 |
0x46 |
ITF |
0x47 |
CODEBAR |
0x48 |
CODE93 |
0x49 |
CODE 128 |
nUnitWidth
指定条码的基本元素宽度。
可以为以下列表中所列值(n)之一。
n |
单基本模块宽度 |
双基本模块宽度(离散型) |
|
窄元素宽度 |
宽元素宽度 |
||
2 |
0.25mm |
0.25mm |
0.625mm |
3 |
0.375mm |
0.375mm |
1.0mm |
4 |
0.5mm |
0.5mm |
1.25mm |
5 |
0.625mm |
0.625mm |
1.625mm |
6 |
0.75mm |
0.75mm |
1.875mm |
nHeight
条码高度
8点即1mm,填入80即可打印高度为1CM的条码。
nHriFontType
指定 HRI(Human ReadableInterpretation)字符的字体类型。
可以为以下列表中所列值之一。
Value |
Meaning |
0x00 |
标准ASCII |
0x01 |
压缩ASCII |
nHriFontPosition
指定HRI(Human ReadableInterpretation)字符的位置。
可以为以下列表中所列值之一。
Value |
Meaning |
0x00 |
不打印 |
0x01 |
只在条码上方打印 |
0x02 |
只在条码下方打印 |
0x03 |
条码上、下方都打印 |
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。
POS_PrintQRCode
打印二维码(QR码)
Syntax
- (bool)POS_PrintQRcode:(char *)pszString x:(int)x nUnitWidth:(int)nUnitWidthnVersion:(int)nVersion nECCLevel:(int)nECCLevel
Parameters
pszString
二维码文本
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x |
含义 |
-1 |
左对齐 |
-2 |
居中对齐 |
-3 |
右对齐 |
大于等于0 |
横坐标 |
nUnitWidth
QR码单元宽度,范围[1,16]。
QR码单元宽度越大,QR码越大。
nVersion
QR码版本。0表示自动计算版本。
QR码版本越大,能编码的字符就越多,QR码也越大。
nECCLevel
QR码纠错等级。[1,4]
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。
POS_PrintPicture
打印图片
Syntax
- (bool)POS_PrintPicture:(UIImage *)mImagex:(int)x nWidth:(int)nWidthnHeight:(int)nHeight nBinaryAlgorithm:(int)nBinaryAlgorithmnCompressMethod:(int)nCompressMethod
Parameters
mImage
要打印的图片
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x |
含义 |
-1 |
左对齐 |
-2 |
居中对齐 |
-3 |
右对齐 |
大于等于0 |
横坐标 |
nWidth
要打印的宽度
nHeight
要打印的高度
nBinaryAlgorithm
0 使用抖动算法,对彩色图片有较好的效果。
1 使用平均阀值算法,对文本类图片有较好的效果
nCompressMethod
压缩算法
0 不使用压缩算法
1 使用压缩算法
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。
POS_FeedLine
Syntax
- (bool) POS_FeedLine
Parameters
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
打印机进纸一行
POS_Reset
复位打印机。会清空设置。
Syntax
- (bool) POS_Reset
Parameters
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
POS_SetRightSpacing
设置字符右边空白
Syntax
- (bool) POS_SetRightSpacing:(int)nDistance
Parameters
nDistance
字符右边空白
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks