Caysn打印机IOS平台打印开发包、接口说明文档及示例程序_20170717
2017-07-17 17:03
731 查看
打印机开发包,接口说明文档,打印示例程序下载地址: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来获取打印数据。可用于调试,也可以用于其他用途(例如,将获取到的指令,通过别的接口发送出去)
① 先实例化一个POSPrinting(为方便描述,设变量名为pos),这个时候,直接调用POS_XXX系列函数,会发现并不能打印,因为这时候POSPrinting并没有持有一个可读写的IO。需要进行②③步。
② 先实例化一个BLEPrinting(为方便描述,设变量名为ble),然后调用Open函数连接到蓝牙打印机。
③ 连接成功之后,调用pos的SetIO,将让pos持有ble,这样,后续的POS_XXX系列函数,就会通过ble的Write和Read与打印机通讯。
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
普通行式打印
描述:打印文本
Syntax
- (bool)POS_PrintText:(char *)pszString x:(int)x nWidthTimes:(int)nWidthTimesnHeightTimes:(int)nHeightTimes nFontType:(int)nFontTypenFontStyle:(int)nFontStyle
Parameters
pszString
要打印的内容。UTF8编码字符串。
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
nWidthScale
指定宽度放大倍数 [0,7]
nHeightScale
指定高度放大倍数 [0,7]
nFontType
字体类型
0 标准字体
1 压缩字体
nFontStyle
指定字体风格,可以为下表中的一个或者若干个(相加即可)
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
POS_PrintText并不立刻打印,需要调用POS_FeedXXX系列函数,才会把行缓冲区中的内容打印出来。
同一行不支持多种对齐方式。
打印条码
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见下表
nType
可以为以下列表中所列值之一。
nUnitWidth
指定条码的基本元素宽度。
可以为以下列表中所列值(n)之一。
nHeight
条码高度
8点即1mm,填入80即可打印高度为1CM的条码。
nHriFontType
指定 HRI(Human ReadableInterpretation)字符的字体类型。
可以为以下列表中所列值之一。
nHriFontPosition
指定HRI(Human ReadableInterpretation)字符的位置。
可以为以下列表中所列值之一。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。
打印二维码(QR码)
Syntax
- (bool)POS_PrintQRcode:(char *)pszString x:(int)x nUnitWidth:(int)nUnitWidthnVersion:(int)nVersion nECCLevel:(int)nECCLevel
Parameters
pszString
二维码文本
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
nUnitWidth
QR码单元宽度,范围[1,16]。
QR码单元宽度越大,QR码越大。
nVersion
QR码版本。0表示自动计算版本。
QR码版本越大,能编码的字符就越多,QR码也越大。
nECCLevel
QR码纠错等级。[1,4]
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。
打印图片
Syntax
- (bool)POS_PrintPicture:(UIImage *)mImagex:(int)x nWidth:(int)nWidthnHeight:(int)nHeight nBinaryAlgorithm:(int)nBinaryAlgorithmnCompressMethod:(int)nCompressMethod
Parameters
mImage
要打印的图片
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
nWidth
要打印的宽度
nHeight
要打印的高度
nBinaryAlgorithm
二值化算法
0 使用抖动算法,对彩色图片有较好的效果。
1 使用平均阀值算法,对文本类图片有较好的效果
nCompressMethod
压缩算法
0 不使用压缩算法
1 使用压缩算法
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。
Syntax
- (bool) POS_FeedLine
Parameters
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
打印机进纸一行
复位打印机。会清空设置。
Syntax
- (bool) POS_Reset
Parameters
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
设置字符右边空白
Syntax
- (bool) POS_SetRightSpacing:(int)nDistance
Parameters
nDistance
字符右边空白
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
设置行高
Syntax
- (bool) POS_SetLineHeight:(int)nHeight
Parameters
nHeight
行高
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool) POS_SetPrintSpeed:(int)nSpeed
Parameters
nSpeed
打印速度(mm/s)
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
将打印速度设置为数据发送速度,可以是打印效果达到最好。
可以通过打印一张单据,测量单据的长度和所用时间,用长度/时间,即可。
Syntax
-(bool) POS_CutPaper
Parameters
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
只对带切刀的机器有效
Syntax
- (bool) POS_Beep:(int)nBeepCountnBeepMillis:(int)nBeepMillis
Parameters
nBeepCount
鸣叫次数
nBeepMillis
每次鸣叫的时间 = 100 * nBeemMillisms
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool) POS_KickDrawer:(int)nDrawerIndexnPulseTime:(int)nPulseTime
Parameters
nDrawerIndex
0表示:脉冲发送到钱箱输出引脚2
1表示:脉冲发送到钱箱输出引脚5
nPulseTime
脉冲时间
高电平时间:nPulseTime*2ms
低电平时间:nPulseTime*2ms
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
打印机忙时,该命令会一直阻塞
返回的状态保存在status中
Syntax
- (bool)POS_QueryStatus:(int)type status:(Byte *)status timeout:(int)timeoutMaxRetry:(int)MaxRetry
Parameters
type
当前固定为1
status
status 该值目前无意义
timeout
单次查询状态的超时毫秒时间
MaxRetry
失败重试次数
Return value
返回true,表明打印机状态OK。否则,打印机未联机或打印机正忙。
Remarks
无论打印机处于何种状态,只要打印机收到该命令就立刻回送状态
返回的状态保存在status中
Syntax
- (bool)POS_RTQueryStatus:(int)type status:(Byte *)status timeout:(int)timeoutMaxRetry:(int)MaxRetry
Parameters
type
type可取值 [1,4]
1:打印机状态
2:传送脱机状态
3:传送错误状态
4:传送纸传感器状态
status
status 对应含义见上表
timeout
单次查询状态的超时毫秒时间
MaxRetry
失败重试次数
Return value
返回true,表明打印机通讯正常,查询的状态保存在status中。
Remarks
可以识别出因缺纸,过热,或其他错误导致单据打印不完整的情况。
Syntax
- (int) POS_TicketSucceed:(int)dwSendIndex timeout:(int)timeout;
Parameters
dwSendIndex
单据索引,填0或递增均可。
timeout
超时毫秒时间,根据单据情况设置即可。例如打印一张单据正常需要3s时间,那么此处可以最多等待10s,来确定单据是否打印完成。参数可以填10000
Return value
* 返回 0,表示单据打印成功。
* 返回-1,表示单据查询指令失败。失败原因:连接断开或已关闭。
* 返回-2,表示单据查询指令失败。失败原因:发送失败。
* 返回-3,表示单据查询指令失败。失败原因:打印机无响应。
* 返回-4,表示单据打印失败。原因:打印机脱机。
* 返回-5,表示单据打印不完整。原因:打印机因缺纸而中断打印。
* 返回-6,表示单据打印失败。原因:其他原因。
Remarks
部分机型不支持单据查询指令
标签打印
Page页的大小,参考点坐标和页面旋转角度。
Syntax
- (bool)PageBegin:(int)startx starty:(int)starty width:(int)width height:(int)heightrotate:(int)rotate
Parameters
startx
页面起始点x坐标
starty
页面起始点y坐标
width
页面页宽
startx + width的范围为[1,384]。编写SDK的时候,该打印机一行的打印点数为384点。如果你不确定每行打印点数,请参考打印机规格书。一般来说有384,576,832这三种规格。
height
页面页高
starty + height的范围[1,936]。编写SDK的时候,限制是936,但是这个值并不确定,这和打印机的资源有关。即便如此,也不建议把页高设置过大。建议页宽和页高设置和标签纸匹配即可。
rotate
页面旋转。 rotate的取值范围为{0,1}。为0,页面不旋转打印,为1,页面旋转90度打印。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool) PageEnd
Parameters
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool) PagePrint:(int)num
Parameters
num
打印的次数,1-255。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool)DrawPlainText:(int)startx starty:(int)starty font:(int)font style:(int)stylestr:(char *)str
Parameters
startx
定义文本起始位置 x坐标,取值范围:[0,Page_Width-1]
starty
定义文本起始位置 y坐标,取值范围:[0,Page_Height-1]
font
选择字体,有效值范围为{16, 24, 32, 48, 64, 80,96},当前打印机只可以使用24。
style
字符风格。
数据位 定义
0 加粗标志位: 置
1 字体加粗,清零则字体不加粗。
1 下划线标志位: 置 1文本带下划线,清零则无下划线。
2 反白标志位: 置 1文本反白(黑底白字),清零不反白。
3 删除线标志位: 置 1文本带删除线,清零则无删除线。
[5,4] 旋转标志位: 00旋转 0°;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°;
[11,8] 字体宽度放大倍数;
[15,12] 字体高度放大倍数;
str
字符串数据流
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool)DrawLine:(int)startx starty:(int)starty endx:(int)endx endy:(int)endywidth:(int)width color:(int)color
Parameters
startx
直线段起始点 x坐标值,取值范围:[0,Page_Width-1]。
starty
直线段起始点 y坐标值,取值范围:[0,Page_Height-1]。
endx
直线段终止点 x坐标值,取值范围:[0,Page_Width-1]。
endy
直线段终止点 y坐标值,取值范围:[0,Page_Height-1]。
width
直线段线宽,取值范围:[1,Page_Height-1]。
color
直线段颜色,取值范围:{0, 1}。
当 Color
为 1 时,线段为黑色。
当 Color
为 0 时,线段为白色。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool) DrawBox:(int)left top:(int)topright:(int)right bottom:(int)bottom borderwidth:(int)borderwidthbordercolor:(int)bordercolor
Parameters
left
矩形框左上角x坐标值,取值范围:[0, Page_Width-1]。
top
矩形框左上角y坐标值。取值范围:[0, Page_Height-1]。
right
矩形框右下角x坐标值。取值范围:[0, Page_Width-1]。
bottom
矩形框右下角 y坐标值。取值范围:[0,
Page_Height-1]。
borderwidth
矩形框线宽。
bordercolor
矩形框线颜色,曲直范围{0,1}。当 Color = 1时,绘制黑色矩形宽,Color
= 0时,绘制白色矩形框。
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool)DrawRectangel:(int)left top:(int)top right:(int)right bottom:(int)bottomcolor:(int)color
Parameters
left
矩形块左上角 x坐标值,取值范围:[0, Page_Width-1]。
top
矩形块左上角 y坐标值。取值范围:[0, Page_Height-1]。
right
矩形块右下角 x坐标值。取值范围:[0, Page_Width-1]。
bottom
矩形块右下角 y坐标值。取值范围:[0, Page_Height-1]。
color
矩形块颜色,取值范围:{0, 1}。当 Color为 1时,矩形块为黑色。当
Color为 0时,矩形块为白色。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool)DrawBarcode:(int)startx starty:(int)starty type:(int)type height:(int)heightunitwidth:(int)unitwidth rotate:(int)rotate str:(char *)str
Parameters
startx
条码左上角 x坐标值,取值范围:[0, Page_Width-1]。
starty
条码左上角 y坐标值,取值范围:[0, Page_Height-1]。
type
标识条码类型,取值范围:[0, 29]。各值定义如下:
type 类型 长度 条码值范围(十进制)
0 UPC-A 11 48-57
1 UPC-E 6 48-57
2 EAN13 12 48-57
3 EAN8 7 48-57
4 CODE39 1- 48-57,65-90,32,36,37,43,45,46,47
5 I25 1- 偶数 48-57
6 CODABAR 1- 48-57,65-68,36,43,45,46,47,58
7 CODE93 1-255 0-127
8 CODE128 2-255 0-127
9 CODE11
10 MSI
11 "128M",//可以根据数据切换编码模式-> !096- !105
12 "EAN128",// 自动切换编码模式
13 "25C",//25C Check use mod 10->奇数先在前面补0,10的倍数-[(奇数位的数字之和<从左至右)+(偶数位数字之和)*3]
14 "39C", //39碼的檢查碼必須搭配「檢查碼相對值對照表」,如表所示,將查出的相對值累加後再除以43,得到的餘數再查出相對的編碼字元,即為檢查碼字元。
15 "39",//Full ASCII 39 Code,
特殊字符用两个可表示的字来表示, 39C同样是包含Full ASCII,注意宽窄比处理
16 "EAN13+2",// 附加码与主码间隔 7-12单位,起始为
1011间隔为 01,(_0*10+_1) Mod 4-> 0--AA
1--AB 2--BA 3--BB
17 "EAN13+5",//附加码部分同上,模式((_0+_2+_4)*3+(_1+_3)*9) mod 10->"bbaaa","babaa","baaba",
"baaab", "abbaa","aabba", "aaabb", "ababa","abaab","aabab
18 "EAN8+2",// 同 EAN13+2
19 "EAN8+5",// 同 EAN13+5
20 "POST", // 详见规格说明,是高低条码,不是宽窄条码
21 "UPCA+2",// 附加码见 EAN
22 "UPCA+5", // 附加码见 EAN
23 "UPCE+2",// 附加码见 EAN
24 "UPCE+5",//附加码见 EAN
25 "CPOST",// 测试不打印。。。
26 "MSIC",//将检查码作为数据再计算一次检查码
27 "PLESSEY",// 测试不打印。。。
28 "ITF14",// 25C 变种,第一个数前补0,检查码计算时需扣除最后一个数,但仍填充为最尾端
29 "EAN14"
height
定义条码高度。
unitwidth
定义条码码宽。取值范围:[1, 4]。
各值定义如下:
Width取值多级条码单位宽度(mm)二进制条码窄线条宽度二进制条码宽线条宽度
1 0.125 0.125 0.25
2 0.25 0.25 0.50
3 0.375 0.375
0.75
4 0.50 0.50 1.0
rotate
表示条码旋转角度。取值范围:[0, 3]。各值定义如下:
Rotate取值 定义
0 条码不旋转绘制。
1 条码旋转90°绘制。
2 条码旋转 180°绘制。
3 条码旋转 270°绘制。
str
文本字符数据流
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
QRCode码。
Syntax
- (bool)DrawQRCode:(int)startx starty:(int)starty version:(int)version ecc:(int)eccunitwidth:(int)unitwidth rotate:(int)rotate str:(char *)str
Parameters
startx
QRCode 码左上角 x坐标值,取值范围:[0,Page_Width-1]。
starty
QRCode 码左上角 y坐标值,取值范围:[0, Page_Height-1]。
version
指定字符版本。取值范围:[0,20]。当 version为 0时,打印机根据字符串长度自动计算版本号。
ecc
指定纠错等级。取值范围:[1, 4]。各值定义如下:
ECC 纠错等级
1 L:7%,低纠错,数据多。
2 M:15%,中纠错
3 Q:优化纠错
4 H:30%,最高纠错,数据少。
unitwidth
QRCode 码码块,取值范围:[1, 4]。各值定义与一维条码指令输入参数UniWidth相同。
rotate
QRCode 码旋转角度,取值范围:[0, 3]。各值定义与一维条码指令输入参数Rotate相同。
str
QRCode 文本字符数据流
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
PDF417条码。
Syntax
- (bool) DrawPDF417:(int)startx starty:(int)startycolnum:(int)colnum lwratio:(int)lwratio ecc:(int)ecc unitwidth:(int)unitwidthrotate:(int)rotate str:(char *)str
Parameters
startx
PDF417 码左上角 x坐标值,取值范围:[0,Page_Width-1]。
starty
PDF417 码左上角 y坐标值,取值范围:[0, Page_Height-1]。
colnum
ColNum 为列数,表述每行容纳多少码字。一个码字为 17*UnitWidth个点。行数由打印机自动产生,行数范围限定为3~90。ColNum的取值范围:[1,30]。
lwratio
宽高比。取值范围:[3,5]。
ecc
纠错等级,取值范围:[0.8]。
ecc取值纠错码数可存资料量(字节)
0 2 1108
1 4 1106
2 8 1101
3 16 1092
4 32 1072
5 64 1024
6 128 957
7 256 804
8 512 496
unitwidth
PDF417 码码块,取值范围:[1, 3]。各值定义与一维条码指令输入参数 UniWidth相同。
rotate
PDF417 码旋转角度,取值范围:[0, 3]。各值定义与一维条码指令输入参数 Rotate相同。
str
PDF417 文本字符数据流。
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
-(bool) DrawBitmap:(int)startx starty:(int)starty width:(int)widthheight:(int)height style:(int)style pdata:(Byte *)pdata
Parameters
startx
位图左上角 x坐标值,取值范围:[0,Page_Width]。
starty
位图左上角 y坐标值,取值范围:[0,Page_Height]。
width
位图的像素宽度。
height
位图的像素高度。
style
位图打印特效,各位定义如下:
位 定义
0 反白标志位,置 1位图反白打印,清零正常打印。
[2:1] 旋转标志位:
00旋转 0°;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°
[7:3] 保留。
[11:8] 位图宽度放大倍数。
[12:15]位图高度放大倍数。
pdata
位图的点阵数据。
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
Syntax
- (bool)DrawBitmap:(int)startx starty:(int)starty width:(int)width height:(int)heightstyle:(int)style img:(UIImage *)img nBinaryAlgorithm:(int)nBinaryAlgorithm
Parameters
startx
位图左上角 x坐标值,取值范围:[0, Page_Width]。
starty
位图左上角 y坐标值,取值范围:[0, Page_Height]。
width
要打印的宽度。
height
要打印的素高度。
style
位图打印特效,各位定义如下:
位 定义
0 反白标志位,置 1位图反白打印,清零正常打印。
[2:1] 旋转标志位:
00旋转 0°;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°
[7:3] 保留。
[11:8] 位图宽度放大倍数。
[12:15]位图高度放大倍数。
img
要打印的图片。
nBinaryAlgorithm
二值化算法
0 使用抖动算法,对彩色图片有较好的效果。
1 使用平均阀值算法,对文本类图片有较好的效果
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
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
POS_SetLineHeight
设置行高
Syntax
- (bool) POS_SetLineHeight:(int)nHeight
Parameters
nHeight
行高
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
POS_SetPrintSpeed
设置打印速度注:如果打印速度大于发送速度,打印会有卡顿感。Syntax
- (bool) POS_SetPrintSpeed:(int)nSpeed
Parameters
nSpeed
打印速度(mm/s)
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
将打印速度设置为数据发送速度,可以是打印效果达到最好。
可以通过打印一张单据,测量单据的长度和所用时间,用长度/时间,即可。
POS_CutPaper
切纸Syntax
-(bool) POS_CutPaper
Parameters
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
只对带切刀的机器有效
POS_Beep
蜂鸣器鸣叫Syntax
- (bool) POS_Beep:(int)nBeepCountnBeepMillis:(int)nBeepMillis
Parameters
nBeepCount
鸣叫次数
nBeepMillis
每次鸣叫的时间 = 100 * nBeemMillisms
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
POS_KickDrawer
打开钱箱Syntax
- (bool) POS_KickDrawer:(int)nDrawerIndexnPulseTime:(int)nPulseTime
Parameters
nDrawerIndex
0表示:脉冲发送到钱箱输出引脚2
1表示:脉冲发送到钱箱输出引脚5
nPulseTime
脉冲时间
高电平时间:nPulseTime*2ms
低电平时间:nPulseTime*2ms
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
POS_QueryStatus
查询状态打印机忙时,该命令会一直阻塞
返回的状态保存在status中
Syntax
- (bool)POS_QueryStatus:(int)type status:(Byte *)status timeout:(int)timeoutMaxRetry:(int)MaxRetry
Parameters
type
当前固定为1
status
status 该值目前无意义
timeout
单次查询状态的超时毫秒时间
MaxRetry
失败重试次数
Return value
返回true,表明打印机状态OK。否则,打印机未联机或打印机正忙。
Remarks
POS_RTQueryStatus
实时状态查询无论打印机处于何种状态,只要打印机收到该命令就立刻回送状态
返回的状态保存在status中
Syntax
- (bool)POS_RTQueryStatus:(int)type status:(Byte *)status timeout:(int)timeoutMaxRetry:(int)MaxRetry
Parameters
type
type可取值 [1,4]
1:打印机状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2 | 0 | 00 | 0 | 一个或两个钱箱打开 (没有钱箱的机器该位固定为零) |
1 | 04 | 4 | 两个钱箱都关闭 | |
3 | 0 | 00 | 0 | 联机 |
1 | 08 | 8 | 脱机 | |
4 | 1 | 10 | 16 | 固定为1 |
5,6 | | -- | -- | 未定义 |
7 | 0 | 00 | 00 | 纸已撕走 |
1 | 80 | 96 | 纸未撕走 |
2:传送脱机状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2 | 0 | 00 | 0 | 上盖关 |
1 | 04 | 4 | 上盖开 | |
3 | 0 | 00 | 0 | 未按走纸键 |
1 | 08 | 8 | 按下走纸键 | |
4 | 1 | 10 | 16 | 固定为1 |
5 | 0 | 00 | 0 | 打印机不缺纸 |
1 | 20 | 32 | 打印机缺纸 | |
6 | 0 | 00 | 00 | 没有出错情况 |
1 | 40 | 64 | 有错误情况 | |
7 | 0 | 00 | 0 | 固定为0 |
3:传送错误状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2 | | -- | -- | 未定义 |
3 | 0 | 00 | 0 | 切刀无错误 |
1 | 08 | 8 | 切刀有错误 | |
4 | 1 | 10 | 16 | 固定为1 |
5 | 0 | 00 | 0 | 无不可恢复错误 |
1 | 20 | 32 | 有不可恢复错误 | |
6 | 0 | 00 | 00 | 打印头温度和电压正常 |
1 | 40 | 64 | 打印头温度或电压超出范围 | |
7 | 0 | 00 | 0 | 固定为0 |
4:传送纸传感器状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2,3 | 0 | 00 | 0 | 有纸 |
1 | 0C | 12 | 纸将近 | |
4 | 1 | 10 | 16 | 固定为1 |
5,6 | 0 | 00 | 0 | 有纸 |
1 | 60 | 96 | 纸尽 | |
7 | 0 | 00 | 0 | 固定为0 |
status
status 对应含义见上表
timeout
单次查询状态的超时毫秒时间
MaxRetry
失败重试次数
Return value
返回true,表明打印机通讯正常,查询的状态保存在status中。
Remarks
POS_TicketSucceed
描述:询单据打印结果。可以识别出因缺纸,过热,或其他错误导致单据打印不完整的情况。
Syntax
- (int) POS_TicketSucceed:(int)dwSendIndex timeout:(int)timeout;
Parameters
dwSendIndex
单据索引,填0或递增均可。
timeout
超时毫秒时间,根据单据情况设置即可。例如打印一张单据正常需要3s时间,那么此处可以最多等待10s,来确定单据是否打印完成。参数可以填10000
Return value
* 返回 0,表示单据打印成功。
* 返回-1,表示单据查询指令失败。失败原因:连接断开或已关闭。
* 返回-2,表示单据查询指令失败。失败原因:发送失败。
* 返回-3,表示单据查询指令失败。失败原因:打印机无响应。
* 返回-4,表示单据打印失败。原因:打印机脱机。
* 返回-5,表示单据打印不完整。原因:打印机因缺纸而中断打印。
* 返回-6,表示单据打印失败。原因:其他原因。
Remarks
部分机型不支持单据查询指令
LabelPrinting
标签打印
PageBegin
描述:指示一个 Page页面的开始,并设置Page页的大小,参考点坐标和页面旋转角度。
Syntax
- (bool)PageBegin:(int)startx starty:(int)starty width:(int)width height:(int)heightrotate:(int)rotate
Parameters
startx
页面起始点x坐标
starty
页面起始点y坐标
width
页面页宽
startx + width的范围为[1,384]。编写SDK的时候,该打印机一行的打印点数为384点。如果你不确定每行打印点数,请参考打印机规格书。一般来说有384,576,832这三种规格。
height
页面页高
starty + height的范围[1,936]。编写SDK的时候,限制是936,但是这个值并不确定,这和打印机的资源有关。即便如此,也不建议把页高设置过大。建议页宽和页高设置和标签纸匹配即可。
rotate
页面旋转。 rotate的取值范围为{0,1}。为0,页面不旋转打印,为1,页面旋转90度打印。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
PageEnd
描述:指示一个 Page页面的结束。Syntax
- (bool) PageEnd
Parameters
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
PagePrint
描述:将 Page页上的内容打印到标签纸上。Syntax
- (bool) PagePrint:(int)num
Parameters
num
打印的次数,1-255。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawPlainText
描述:在 Page页面上指定位置绘制文本。只能单行打印。Syntax
- (bool)DrawPlainText:(int)startx starty:(int)starty font:(int)font style:(int)stylestr:(char *)str
Parameters
startx
定义文本起始位置 x坐标,取值范围:[0,Page_Width-1]
starty
定义文本起始位置 y坐标,取值范围:[0,Page_Height-1]
font
选择字体,有效值范围为{16, 24, 32, 48, 64, 80,96},当前打印机只可以使用24。
style
字符风格。
数据位 定义
0 加粗标志位: 置
1 字体加粗,清零则字体不加粗。
1 下划线标志位: 置 1文本带下划线,清零则无下划线。
2 反白标志位: 置 1文本反白(黑底白字),清零不反白。
3 删除线标志位: 置 1文本带删除线,清零则无删除线。
[5,4] 旋转标志位: 00旋转 0°;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°;
[11,8] 字体宽度放大倍数;
[15,12] 字体高度放大倍数;
str
字符串数据流
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawLine
描述:在 Page页指定两点间绘制一条直线段。Syntax
- (bool)DrawLine:(int)startx starty:(int)starty endx:(int)endx endy:(int)endywidth:(int)width color:(int)color
Parameters
startx
直线段起始点 x坐标值,取值范围:[0,Page_Width-1]。
starty
直线段起始点 y坐标值,取值范围:[0,Page_Height-1]。
endx
直线段终止点 x坐标值,取值范围:[0,Page_Width-1]。
endy
直线段终止点 y坐标值,取值范围:[0,Page_Height-1]。
width
直线段线宽,取值范围:[1,Page_Height-1]。
color
直线段颜色,取值范围:{0, 1}。
当 Color
为 1 时,线段为黑色。
当 Color
为 0 时,线段为白色。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawBox
描述:在 Page页指定位置绘制指定大小的矩形框。Syntax
- (bool) DrawBox:(int)left top:(int)topright:(int)right bottom:(int)bottom borderwidth:(int)borderwidthbordercolor:(int)bordercolor
Parameters
left
矩形框左上角x坐标值,取值范围:[0, Page_Width-1]。
top
矩形框左上角y坐标值。取值范围:[0, Page_Height-1]。
right
矩形框右下角x坐标值。取值范围:[0, Page_Width-1]。
bottom
矩形框右下角 y坐标值。取值范围:[0,
Page_Height-1]。
borderwidth
矩形框线宽。
bordercolor
矩形框线颜色,曲直范围{0,1}。当 Color = 1时,绘制黑色矩形宽,Color
= 0时,绘制白色矩形框。
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawRectangel
描述:在 Page页指定位置绘制矩形块。Syntax
- (bool)DrawRectangel:(int)left top:(int)top right:(int)right bottom:(int)bottomcolor:(int)color
Parameters
left
矩形块左上角 x坐标值,取值范围:[0, Page_Width-1]。
top
矩形块左上角 y坐标值。取值范围:[0, Page_Height-1]。
right
矩形块右下角 x坐标值。取值范围:[0, Page_Width-1]。
bottom
矩形块右下角 y坐标值。取值范围:[0, Page_Height-1]。
color
矩形块颜色,取值范围:{0, 1}。当 Color为 1时,矩形块为黑色。当
Color为 0时,矩形块为白色。
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawBarcode
描述:在 Page页指定位置绘制一维条码。Syntax
- (bool)DrawBarcode:(int)startx starty:(int)starty type:(int)type height:(int)heightunitwidth:(int)unitwidth rotate:(int)rotate str:(char *)str
Parameters
startx
条码左上角 x坐标值,取值范围:[0, Page_Width-1]。
starty
条码左上角 y坐标值,取值范围:[0, Page_Height-1]。
type
标识条码类型,取值范围:[0, 29]。各值定义如下:
type 类型 长度 条码值范围(十进制)
0 UPC-A 11 48-57
1 UPC-E 6 48-57
2 EAN13 12 48-57
3 EAN8 7 48-57
4 CODE39 1- 48-57,65-90,32,36,37,43,45,46,47
5 I25 1- 偶数 48-57
6 CODABAR 1- 48-57,65-68,36,43,45,46,47,58
7 CODE93 1-255 0-127
8 CODE128 2-255 0-127
9 CODE11
10 MSI
11 "128M",//可以根据数据切换编码模式-> !096- !105
12 "EAN128",// 自动切换编码模式
13 "25C",//25C Check use mod 10->奇数先在前面补0,10的倍数-[(奇数位的数字之和<从左至右)+(偶数位数字之和)*3]
14 "39C", //39碼的檢查碼必須搭配「檢查碼相對值對照表」,如表所示,將查出的相對值累加後再除以43,得到的餘數再查出相對的編碼字元,即為檢查碼字元。
15 "39",//Full ASCII 39 Code,
特殊字符用两个可表示的字来表示, 39C同样是包含Full ASCII,注意宽窄比处理
16 "EAN13+2",// 附加码与主码间隔 7-12单位,起始为
1011间隔为 01,(_0*10+_1) Mod 4-> 0--AA
1--AB 2--BA 3--BB
17 "EAN13+5",//附加码部分同上,模式((_0+_2+_4)*3+(_1+_3)*9) mod 10->"bbaaa","babaa","baaba",
"baaab", "abbaa","aabba", "aaabb", "ababa","abaab","aabab
18 "EAN8+2",// 同 EAN13+2
19 "EAN8+5",// 同 EAN13+5
20 "POST", // 详见规格说明,是高低条码,不是宽窄条码
21 "UPCA+2",// 附加码见 EAN
22 "UPCA+5", // 附加码见 EAN
23 "UPCE+2",// 附加码见 EAN
24 "UPCE+5",//附加码见 EAN
25 "CPOST",// 测试不打印。。。
26 "MSIC",//将检查码作为数据再计算一次检查码
27 "PLESSEY",// 测试不打印。。。
28 "ITF14",// 25C 变种,第一个数前补0,检查码计算时需扣除最后一个数,但仍填充为最尾端
29 "EAN14"
height
定义条码高度。
unitwidth
定义条码码宽。取值范围:[1, 4]。
各值定义如下:
Width取值多级条码单位宽度(mm)二进制条码窄线条宽度二进制条码宽线条宽度
1 0.125 0.125 0.25
2 0.25 0.25 0.50
3 0.375 0.375
0.75
4 0.50 0.50 1.0
rotate
表示条码旋转角度。取值范围:[0, 3]。各值定义如下:
Rotate取值 定义
0 条码不旋转绘制。
1 条码旋转90°绘制。
2 条码旋转 180°绘制。
3 条码旋转 270°绘制。
str
文本字符数据流
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawQRCode
描述:在 Page页指定位置绘制QRCode码。
Syntax
- (bool)DrawQRCode:(int)startx starty:(int)starty version:(int)version ecc:(int)eccunitwidth:(int)unitwidth rotate:(int)rotate str:(char *)str
Parameters
startx
QRCode 码左上角 x坐标值,取值范围:[0,Page_Width-1]。
starty
QRCode 码左上角 y坐标值,取值范围:[0, Page_Height-1]。
version
指定字符版本。取值范围:[0,20]。当 version为 0时,打印机根据字符串长度自动计算版本号。
ecc
指定纠错等级。取值范围:[1, 4]。各值定义如下:
ECC 纠错等级
1 L:7%,低纠错,数据多。
2 M:15%,中纠错
3 Q:优化纠错
4 H:30%,最高纠错,数据少。
unitwidth
QRCode 码码块,取值范围:[1, 4]。各值定义与一维条码指令输入参数UniWidth相同。
rotate
QRCode 码旋转角度,取值范围:[0, 3]。各值定义与一维条码指令输入参数Rotate相同。
str
QRCode 文本字符数据流
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawPDF417
描述:在 Page页指定位置绘制PDF417条码。
Syntax
- (bool) DrawPDF417:(int)startx starty:(int)startycolnum:(int)colnum lwratio:(int)lwratio ecc:(int)ecc unitwidth:(int)unitwidthrotate:(int)rotate str:(char *)str
Parameters
startx
PDF417 码左上角 x坐标值,取值范围:[0,Page_Width-1]。
starty
PDF417 码左上角 y坐标值,取值范围:[0, Page_Height-1]。
colnum
ColNum 为列数,表述每行容纳多少码字。一个码字为 17*UnitWidth个点。行数由打印机自动产生,行数范围限定为3~90。ColNum的取值范围:[1,30]。
lwratio
宽高比。取值范围:[3,5]。
ecc
纠错等级,取值范围:[0.8]。
ecc取值纠错码数可存资料量(字节)
0 2 1108
1 4 1106
2 8 1101
3 16 1092
4 32 1072
5 64 1024
6 128 957
7 256 804
8 512 496
unitwidth
PDF417 码码块,取值范围:[1, 3]。各值定义与一维条码指令输入参数 UniWidth相同。
rotate
PDF417 码旋转角度,取值范围:[0, 3]。各值定义与一维条码指令输入参数 Rotate相同。
str
PDF417 文本字符数据流。
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawBitmap
描述:在 Page页指定位置绘制位图。Syntax
-(bool) DrawBitmap:(int)startx starty:(int)starty width:(int)widthheight:(int)height style:(int)style pdata:(Byte *)pdata
Parameters
startx
位图左上角 x坐标值,取值范围:[0,Page_Width]。
starty
位图左上角 y坐标值,取值范围:[0,Page_Height]。
width
位图的像素宽度。
height
位图的像素高度。
style
位图打印特效,各位定义如下:
位 定义
0 反白标志位,置 1位图反白打印,清零正常打印。
[2:1] 旋转标志位:
00旋转 0°;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°
[7:3] 保留。
[11:8] 位图宽度放大倍数。
[12:15]位图高度放大倍数。
pdata
位图的点阵数据。
Returnvalue
返回true表示写入成功;返回false表示写入失败。
Remarks
DrawBitmap
描述:在 Page页指定位置绘制位图。Syntax
- (bool)DrawBitmap:(int)startx starty:(int)starty width:(int)width height:(int)heightstyle:(int)style img:(UIImage *)img nBinaryAlgorithm:(int)nBinaryAlgorithm
Parameters
startx
位图左上角 x坐标值,取值范围:[0, Page_Width]。
starty
位图左上角 y坐标值,取值范围:[0, Page_Height]。
width
要打印的宽度。
height
要打印的素高度。
style
位图打印特效,各位定义如下:
位 定义
0 反白标志位,置 1位图反白打印,清零正常打印。
[2:1] 旋转标志位:
00旋转 0°;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°
[7:3] 保留。
[11:8] 位图宽度放大倍数。
[12:15]位图高度放大倍数。
img
要打印的图片。
nBinaryAlgorithm
二值化算法
0 使用抖动算法,对彩色图片有较好的效果。
1 使用平均阀值算法,对文本类图片有较好的效果
Return value
返回true表示写入成功;返回false表示写入失败。
Remarks
相关文章推荐
- Caysn打印机IOS平台打印示例及接口说明文档 - 20161008
- Caysn打印机安卓平台开发包接口说明文档及打印示例程序_20170609
- Caysn打印机IOS平台打印开发包及示例程序_20170610
- CaysnPrinter - Windows平台开发包打印示例程序及接口说明文档 - 20170710
- CaysnPrinter - Windows平台开发包打印示例程序及接口说明文档 - 20170531
- CaysnPrinter开发包接口说明文档及打印示例程序 - 20160715
- CaysnPrinter安卓平台开发包接口说明文档及打印示例程序 - 20160926
- CaysnPrinter Windows平台开发包接口说明文档及打印示例程序 - PrinterLibs For Windows_20160927
- CaysnPrinter - Linux平台开发包接口说明文档及打印示例程序 - 20161007
- CaysnPrinter安卓平台开发包接口说明文档及打印示例程序 - 20160926
- CaysnPrinter开发包接口说明文档及示例程序 - CAYSN IOS SDK_20160906
- 365小票打印机打印接口开发文档
- 365小票打印机打印接口开发文档
- jeesite快速开发平台(九)---手机端基础接口文档
- iOS开发UI基础—09UIImageView动画示例之汤姆猫程序
- 用c#开发微信 (19) 公众平台接口权限列表说明 - 订阅号、服务号认证后的区别
- 微博开发平台SDK使用示例(iOS版)
- SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework
- iOS开发中通过蓝牙连接蓝牙打印机设备进行小票打印