4、打印机SDK接口API说明
1、连接指定打印机类型
方法 | voidconnectPrinter(Context context, SunmiPrinter sunmiPrinter,ConnectCallback callback) |
说明 | 指定打印机连接,局域网打印机请使用connectNetPrinter方法 |
输入 | context:上下文会话sunmiPrinter:指定打印机类型 SunmiPrinter.SunmiYKPriner 自助打印机 SunmiPrinter.SunmiNTPrinter NT210商米热敏打印机callback:连接打印机结果回调 |
返回 | 无 |
2、连接局域网打印机
方法 | voidconnectPrinter(Context context, String ip,ConnectCallback callback) |
说明 | 指定打印机连接,局域网打印机请使用connectNetPrinter方法 |
输入 | ontext:上下文会话ip:打印机的ip地址,可通过网络自检获取callback:连接打印机结果回调 |
返回 | 无 |
3、断开当前打印机
方法 | voiddisconnectPrinter(Context context) |
说明 | 结束并断开当前的打印机,将释放资源 |
输入 | context:上下文会话 |
返回 | 无 |
4、打印机连接状态
方法 | booleanisConnected() |
说明 | 当前API使用的打印机连接状态 |
输入 | 无 |
返回 | 是否连接 |
5、指定打印机连接状态
方法 | booleanisConnected(SunmiPrinter sunmiPrinter) |
说明 | sunmiPrinter:指定打印机的连接状态 |
输入 | 无 |
返回 | 是否连接 |
6、获取打印机状态
方法 | int getPrinterStatus() |
说明 | 获取打印机运行状态当打印机处于事务模式时将不支持调用 |
输入 | 无 |
返回 | -1 打印机脱机或打印服务还未连接打印机0 打印机运行正常1 打印机开盖2 打印机缺纸3 打印机即将缺纸4 打印机过热 |
7、打印机初始化
方法 | voidprinterInit() |
说明 | 初始化打印机将使打印机设置状态恢复默认 |
输入 | 无 |
返回 | 无 |
8、打印机按行高走纸
方法 | void lineWrap(int n) |
说明 | 打印机走纸n行如果打印机打印缓冲区有数据,将输出数据并走纸n行如果行高被设置为0,则走纸距离为0 |
输入 | 行数( 0 < n < 256 ) |
返回 | 无 |
9、打印机按像素走纸
方法 | void pixelWrap(int n) |
说明 | 打印机走纸n点行如果打印机打印缓冲区有数据,将输出数据并走纸n点行 |
输入 | 像素点数( 0 < n < 256 ) |
返回 | 无 |
10、刷新缓冲区
方法 | void flush() |
说明 | 刷新打印缓冲区,当缓冲区有数据时将输出,如果没有数据将进纸一行 |
输入 | 无 |
返回 | 无 |
11、水平定位
方法 | void tab() |
说明 | 将打印位置移动到下一个水平定位点位置如果水平定位点超出打印区域则移动到行尾如果此时已经在行尾则会执行换行操作 |
输入 | 无 |
返回 | 无 |
12、设置横向水平定位点
方法 | void setHorizontalTab(int[ ] k ) |
说明 | 将标记水平定位的位置,每个标记点位置由k[n]个ascii字符宽度指定,默认的水平定位点以8个ascii字符宽度为一个定位点 |
输入 | k 横向定位点数组k[n], 数组长度n最大可以是32,0 < k[n] < 256数组中必须是升序排列,否则将抛出异常k设置为null时将恢复默认定位点,默认位置为8个字符间隔 |
返回 | 无 |
13、打印文本内容
方法 | void printText(String text) |
说明 | 此方法会将输入文本转为对应字符集编码的十六进制字节流打印服务默认将文本内容转换为gb18030编码 |
输入 | text要打印的文本内容 |
返回 | 无 |
14、设置gb18030字符集编码
方法 | voidsetGb18030CharSet(booleanset) |
说明 | 打印机默认识别gb18030字符集,当设置关闭时,将不能识别gb18030字符集,会将其当成单字节处理 |
输入 | 是否设置为GB18030字符集识别 |
返回 | 无 |
15、设置打印机映射页表
方法 | voidsetPageTable(int n) |
说明 | 此方法映射单字节码0x80-0xff在不同页上的内容,只有setGb18030CharSet(false)此方法才生效 |
输入 | n 对应页表 |
返回 | 无 |
16、设置国际字符集编码
方法 | voidsetInterCharSet(int n) |
说明 | 部分国家的ascii码中特殊字符有所区别,通过选择国家,可以打印对应国家编码的字符 |
输入 | n 对应国家 |
返回 | 无 |
17、设置字符右间距
方法 | voidsetCharRightSpace(int n) |
说明 | 设置字符的右间距空间,仅对ascii码有效,对其它字符无效 |
输入 | n 间距像素点 |
返回 | 无 |
18、设置汉字左右间距
方法 | voidsetHanziSpace(int m,int n) |
说明 | 设置汉字的左右间距 |
输入 | m 汉字左边间距n 汉字右边间距 |
返回 | 无 |
19、设置字体大小
方法 | voidsetFontZoom(int hori, int veri) |
说明 | 由于打印机硬字库限制,字体大小仅能倍数放大,本方法可以控制字体在横向和纵向方向的放大倍数 |
输入 | hori 、veri 的范围为1-8,表示在横向、纵向上字体的放大倍数,若设置在范围外将返回错误参数 |
返回 | 无 |
20、设置对齐方式
方法 | voidsetAlignMode(int type) |
说明 | 设置打印内容的对齐方式 |
输入 | 0居左(默认)、1居中、2居右 |
返回 | 无 |
21、设置绝对位置
方法 | voidmoveAbsolutePos(int pos) |
说明 | 将打印距离移动到距离起始位置指定像素点 |
输入 | pos 距离起始位置像素点 |
返回 | 无 |
22、设置相对位置
方法 | voidmoveRelativePos(int pos) |
说明 | 将打印位置移动到相对当前位置指定像素点 |
输入 | pos 距离当前位置像素点 |
返回 | 无 |
23、启用或关闭下划线
方法 | voidenableUnderline(boolean enable) |
说明 | 启用或关闭字符下划线功能 |
输入 | enable 是否开启或关闭 |
返回 | 无 |
24、启用或关闭加粗
方法 | voidenableBold(booleanenable) |
说明 | 启用或关闭字符加粗功能 |
输入 | enable 是否开启或关闭 |
返回 | 无 |
25、启用或关闭重叠效果(一般同加粗)
方法 | voidenableDouble(boolean enable) |
说明 | 启用或关闭字符重叠效果 |
输入 | enable 是否开启或关闭 |
返回 | 无 |
26、设置打印机的行间距
方法 | voidsetLineSpace(int value) |
说明 | 设置打印机行间当行间距小于字符高度时将按字符高度 |
输入 | value 当设置小于0时将恢复默认行间距否则设置行间距为对应值 |
返回 | 无 |
27、设置打印机的左边距
方法 | voidsetLeftSpace(int value) |
说明 | 设置打印左边距大小像素点设置值过大可能导致打印区域小时 |
输入 | value 左边距大小 |
返回 | 无 |
28、设置打印宽度
方法 | voidsetPrintWidth(int width) |
说明 | 设置可打印区域大小像素点 |
输入 | width 可打印大小 |
返回 | 无 |
29、打印条形码
方法 | void printBarCode(String code, int type, int width, int height, int hriPos) |
说明 | 打印自定内容的条形码 |
输入 | code 条形码内容 (根据条码类型不同,条码内容需满足其格式)type 条形码类型 0:UPC-A; 1:UPC-E; 2:EAN13; 3:EAN8; 4:CODE39; 5:ITF; 6:CODABAR; 7:CODE93; 8:CODE128width 条形码宽度 2-6 像素 (若条码宽度设置过宽,整个条码超过纸张宽度将不会输出条码内容)height 条形码高度 1-255 像素hriPos HRI位置 0:不打印; 1:条形码上方; 2:条形码下方; 3:条形码上下方 |
返回 | 无 |
30、打印二维码
方法 | void printQrCode(String code, int modeSize, int errorlevel) |
说明 | 打印二维码 |
输入 | code 要打印的二维码内容,默认为utf-8字符集modeSize 二维码块大小 1-16 像素点errorlevel 二维码纠错等级 0-3 四个等级 |
返回 | 无 |
31、打印图片方法1
方法 | void printBitmap(Bitmap bitmap, int mode) |
说明 | 将bitmap图转成光栅位图方式打印此方法适合打印宽度在打印纸内的图片注意数据过大时可能会导致发送失败,此时建议通过mode设置倍数放大 |
输入 | bitmap 要打印的bitmap非透明图像mode 0:普通 1:倍宽 2:倍高 3:倍高倍宽 |
返回 | 无 |
32、打印图片方法2
方法 | void printBitmap2(Bitmap bitmap, int mode) |
说明 | 将bitmap图转成位图模式发送此方法需要将行间距设置为0此方法与printBitmap区别是不会造成数据失败后打印机未初始化的乱码注意数据过大时可能会导致发送失败,此时建议通过mode设置倍数放大 |
输入 | bitmap 要打印的bitmap非透明图像mode 0:8点单密度 1:8点双密度 32:24点单密度 33:24点双密度(原始大小) |
返回 | 无 |
33、切刀切纸
方法 | void cutPaper(int m, int n) |
说明 | 切纸 |
输入 | m 切纸模式 0:全切; 1:半切; 2:进纸切纸n 进纸距离 此参数只有在设置 m=2时有效, 由于打印机型号不同切刀到打印头距离不同,当n=0时将自动走纸此距离,n>0将走额外设置距离 |
返回 | 无 |
34、表格打印
方法 | void printColumnsText(String[] colsTextArr, int[] colsWidthArr, int[] colsAlign) |
说明 | 以表格方式输出打印内容,每个数组表示在此列上的数据及格式,需要多次调用此方法才可以达到表格输出的样式效果 ⚠️注意:调用此方法后会将之前设置样式初始化! |
输入 | colsTextArr: 每列要打印的内容,支持中文及ascii码colsWidthArr:每列可容纳的最大字符数量,字符数以ascii码个数为单位(一个中文等于两个ascii码数量),当文本内容超出可容纳的最大数量时将移动到本列下一行,当所有列的最大字符数量超出一行所能容纳的字符数时,将不会打印colsAlign:每列内容的对齐方式,仅当内容字符数小于最大字符数量时才有效果 |
返回 | 无 |
35、发送数据指令
方法 | void sendRawData(byte[] cmd) |
说明 | 发送原始esc控制指令 |
输入 | cmd 发送的epson指令 |
返回 | 无 |
36、启用事务模式
方法 | voidstartTransBuffer(boolean isClear) |
说明 | 启用事务模式,用于控制打印内容的执行顺序和执行状态,只有在事务模式下才可以精确的获取打印内容的结果当进入事务模式后所有的打印指令会缓存待提交时发给打印机,所以未提交数据时将不会打印机 ⚠️注意:暂时只有云打印机局域网打印支持事务模式 |
输入 | isClear是否清除未提交的缓存数据 |
返回 | 无 |
37、提交事务数据
方法 | voidcommitTransBuffer(TransCallback callback) |
说明 | 提交本次事务获取本次事务打印的执行情况建议等待提交事务结果后再执行下一次的事务提交注意:暂时只有云打印机局域网打印支持事务模式 |
输入 | callback 事务提交的执行结果 |
返回 | 无 |
38、退出事务模式
方法 | voidendTransBuffer() |
说明 | 退出事务模式之后的打印指令均直接发给打印机,不再关注打印执行情况注意:暂时只有云打印机局域网打印支持事务模式 |
输入 | 无 |
返回 | 无 |