更新记录
1.0.4(2022-03-09)
1.新增设置打印机编码;
2.新增设置 SDK 编码;
3.发送数据函数;
4.读取数据函数;
1.0.3(2021-10-11)
1.接口代码优化;
2.新增多个功能;
设置打印完成时状态开关
打印后走纸
设置蜂鸣器鸣叫时间
获取打印完成时状态
获取打印完成时状态
打印机回退
具体看接口文档
3.支持到最低手机16版本
4.文档说明重写
1.0.2(2020-10-27)
修改低版本兼容
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
汉印便携式打印机(HM-A300)
1.蓝牙连接打印机
参数:mac 蓝牙地址
返回: 0:连接成功,-1:连接异常,-2:蓝牙地址错误, -3:打印机与 SDK 不匹配(握手指令错误)
HanyinPlugin.PortOpenBT({mac:""},res=>{});
2.断开函数
参数: 无
返回: 0:成功,-1:失败。
HanyinPlugin.PortClose(res => {});
3.检测蓝牙是否连接
参数: 无
返回: true:连接, false:断开
HanyinPlugin.IsOpened(res => {});
4.页标签开始指令
参数:
{
offset:此值使所有字段将水平偏移指定的单位数量
Horizontal:水平方向的 dpi。(根据打印机的 dpi 设置,200dpi 打印机:8px=1mm)
Vertical:垂直方向的 dpi。(同上)
Height:整个标签的高度。(单位:px)
Qty:打印的次数。
}
返回: 大于0:正常,否则异常
HanyinPlugin.printAreaSize(params, res => {});
5.页标签结束指令
参数: 无
返回: 大于0:正常,否则异常
注意: 行模式不能用
HanyinPlugin.Print(res => {});
6.编码指令 如: GB18030
参数: { type:"GB18030" }
返回: 大于0:正常,否则异常
注意: 行模式不能用
HanyinPlugin.Encoding(params, res => {})
7.走纸到下一张标签
参数: 无
返回: 大于0:正常,否则异常
注意:(必须跟 PRINT 在一起才有效,指令只对标签有效)
HanyinPlugin.Form(res => {});
8.注释
参数: { note: "" }
返回: 大于0:正常,否则异常
HanyinPlugin.Note(params, res => {});
9.终止指令
参数: 无
返回: 大于0:正常,否则异常
HanyinPlugin.Abort(res => {});
10.计数
参数: { ml:"" }
返回: 大于0:正常,否则异常
HanyinPlugin.Count(res => {});
11.设置字符宽高放大倍数
参数: { width: "", height: "" }
返回: 大于0:正常,否则异常
注意: 使用后记得关闭【 SetMag(“1”,”1”)//关闭放大 】
HanyinPlugin.SetMag(params, res => {});
12.文本打印 -- 用于中文固件
N的低4位 | 3 | 2 | 1 | 0 |
---|---|---|---|---|
加粗 | - | - | - | 1 |
反白 | - | - | 1 | - |
倍宽 | - | 1 | - | - |
倍高 | 1 |
参数:
{
command: 0, // 0: 水平 1: 垂直
font: "",
1: 打印繁体字(24x24 或者 12x24,视中英文而定。) 16:16x16 或 8x16,视中英文而定。
24: 24x24 或 12x24,视中英文而定。
32: 32x32 或 16x32,由 ID3 字体宽高各放大 2 倍
x: "", 起始点的横坐标
y: "", 起始点的纵坐标
data: "", 文本数据
N: "", 字体的特效
Iscenter: "",
width: ""
}
返回: 大于0:正常,否则异常
注意: width:要居中的范围。(Iscenter=true 时才生效)单位:px。
HanyinPlugin.PrintTextCPCL(params, res => {})
13.用于英文固件
表格同上
参数:
{
command: 0, // 0: 水平 1: 垂直
font: "",
字体点阵大小
0:12x24
1:9x17
x: "", 起始点的横坐标
y: "", 起始点的纵坐标
data: "", 文本数据
N: "", 字体的特效
}
返回: 大于0:正常,否则异常
HanyinPlugin.PrintCodepageTextCPCL(params, res => {})
14.两种固件都能用
参数:
{
command: 0,
0: 水平
90: 逆时针旋转90度
180: 逆时针旋转180度
270: 逆时针旋转270度
font: "",
注意:英文固件只支持(0 和 1)
0:12x24。 1:12x24(中文模式下打印繁体),英文模式下字体变成(9x17)大小 2:8x16。
3:20x20。
4:32x32 或者 16x32,由 ID3 字体宽高各放大两倍。 7:24x24 或者 12x24,视中英文而定。
8:24x24 或者 12x24,视中英文而定。
20:16x16 或者 8x16,视中英文而定。
24:24x24 或者 12x24,视中英文而定。
55:16x16 或者 8x16,视中英文而定。
其它默认 24x24 或者 12x24,视中英文而定。
size: "", 字体大小。(该功能被屏蔽统一参数传 0)
x: "", 起始点的横坐标
y: "", 起始点的纵坐标
data: "", 文本数据
}
返回: 大于0:正常,否则异常
注意: size :字体大小。(该功能被屏蔽统一参数传 0)
HanyinPlugin.Text(params, res => {});
15.对齐方式
参数:
{
align: "LEFT"
LEFT: 居左
center: 居中
right: 居右
}
返回: 大于0:正常,否则异常
HanyinPlugin.Align(params, res => {});
16.条形码打印
宽条窄条的比例(ratio)
参数:
{
command: 0, // 0: 水平 1: 垂直
type: "", // 条码类型
UPCA,UPCA2,UPCA5,UPCE,UPCE2,UPCE5,EAN13,EAN132,EAN135,EAN8,EAN82,EAN85,code39,code39C,F39,F39C, code93,I2OF5,I2OF5C,I2OF5G,code128,UCCEAN128,CODABAR,CODABAR16,MSI,MSI10,MSI1010,MSI1110, POSTNET,FIM
width: "", // 窄条的单位宽度
ratio: "", // 宽条窄条的比例
height: "", // 条码高度
y: "", // 条码的起始纵坐标
x: "", // 条码的起始横坐标。(单位:px)
undertext: "", // 条码下方的数据是否可见。ture:可见,false:不可见。 number:字体的类型。
size: "", // 字体的大小。
offset: "", // 条码与文字间的距离。
data: "" // 条码数据。
}
返回: 大于0:正常,否则异常
HanyinPlugin.Barcode(params, res => {});
17.二维码打印
参数:
{
command: 0, // 0: 水平 1: 垂直
x: "", // 二维码的起始横坐标
y: "", // 二维码的起始纵坐标
m: "1", // 类型 1 和类型 2;类型 2 是增加了个别的符号
u: "6", // 单位宽度/模块的单元高度, 范围是1到32默认为6
data: "", // 二维码的数据
}
返回: 大于0:正常,否则异常
HanyinPlugin.PrintQR(params, res => {});
18.打印 PDF417 码
参数:
{
command: 0, // 0: 水平 1: 垂直
xd: "", // 最窄元素的单位宽度。范围是 1 到 32,默认为 2
yd: "", // 最窄元素的单位高度。范围是 1 到 32,默认值是 6
x: "", // 二维码的起始横坐标
y: "", // 二维码的起始纵坐标
c: "", // 使用的列数。数据列不包括启动/停止字符和左/右指标。范围为 1 到 30;默认值是3
s: "", // 安全级别表示要检测到的错误的最大金额和/或校正。范围为0到8;默认值是1
data: "", // PDF417 码的数据
}
返回: 大于0:正常,否则异常
HanyinPlugin.PrintPDF417(params, res => {});
19.画矩形框
参数:
{
x0: "", // 左上角的 X 坐标
y0: "", // 左上角的 Y 坐标
x1: "", // 右下角的 X 坐标
y1: "", // 右下角的 Y 坐标
width: "", // 线条的单位宽度
}
返回: 大于0:正常,否则异常
HanyinPlugin.Box(params, res => {});
20.画直线
参数:
{
x0: "", // 左上角的 X 坐标
y0: "", // 左上角的 Y 坐标
x1: "", // 右下角的 X 坐标
y1: "", // 右下角的 Y 坐标
width: "", // 线条的单位宽度
}
返回: 大于0:正常,否则异常
HanyinPlugin.Line(params, res => {});
21.反白框
参数:
{
x0: "", // 左上角的 X 坐标
y0: "", // 左上角的 Y 坐标
x1: "", // 右下角的 X 坐标
y1: "", // 右下角的 Y 坐标
width: "", // 线条的单位宽度
}
返回: 大于0:正常,否则异常
HanyinPlugin.InverseLine(params, res => {});
22.打印图片(bitmap)
参数:
{
x: "", // 图片起始的 x 坐标
y: "", // 图片起始的 y 坐标
img: "", // 图片的 Bitmap 的对象
type: "", // 图片算法。0:二值算法;1:半色调算法
light: "", // 亮度(默认 0)
}
返回: 大于0:正常,否则异常
HanyinPlugin.Expanded(params, res => {});
23.打印图片(url)
参数:
{
x: "", // 图片起始的 x 坐标
y: "", // 图片起始的 y 坐标
img: "", // 图片的 Bitmap 的对象
}
返回: 大于0:正常,否则异常
HanyinPlugin.ExpandedUrl(params, res => {});
24.设置打印浓度
参数:
{
contrast: "1" // 浓度类型 默认 =0 中 =1 黑暗 =2 非常深 =3
}
返回: 大于0:正常,否则异常
HanyinPlugin.Contrast(params, res => {});
25.设置打印速度
参数:
{
speed: "1", // 从 0 到 5 越来越快;5 是理想状态的最快速度
}
返回: 大于0:正常,否则异常
HanyinPlugin.Speed(params, res => {});
26.设置字间距
参数:
{
setsp: "1", // 间距
}
返回: 大于0:正常,否则异常
HanyinPlugin.Speed(params, res => {});
27.走纸再打印
参数:
{
prefeed: "", // prefeed:走纸的距离
}
返回: 大于0:正常,否则异常
HanyinPlugin.Prefeed(params, res => {});
28.打印后走纸一定距离
参数:
{
postfeed: "", // 走纸的距离
}
返回: 大于0:正常,否则异常
注意:要在 FORM 指令之后
HanyinPlugin.Postfeed(params, res => {});
29.设置蜂鸣器鸣叫时间
参数:
{
beep: "", // 蜂鸣声的持续时间
}
返回: 大于0:正常,否则异常
注意: (1/8)秒为单位指定
HanyinPlugin.Beep(params, res => {});
30.下划线
参数:
{
ul: true, // 设置下划线 true:添加下划线,false:取消下划线
}
返回: 大于0:正常,否则异常
HanyinPlugin.Underline(params, res => {});
31.打印一页标签后延时
参数:
{
wait: "", // 延时的单位是:1/8 秒
}
返回: 大于0:正常,否则异常
HanyinPlugin.Wait(params, res => {});
32.打印宽度
参数:
{
pw: "",
}
返回: 大于0:正常,否则异常
HanyinPlugin.PageWidth(params, res => {});
33.行模式下设置行间距 setlf间距
参数:
{
setlf: "", // 间距
}
返回: 大于0:正常,否则异常
HanyinPlugin.Setlf(params, res => {});
34.设置字体与字符大小及行间距
参数:
{
font: "", // 字体
size: "", // 大小
spacing: "" // 字体的高度。
}
返回: 大于0:正常,否则异常
HanyinPlugin.Setlp(params, res => {});
35.字体加粗
参数:
{
bold: "", // 加粗系数
}
返回: 大于0:正常,否则异常
HanyinPlugin.SetBold(params, res => {});
36.获取打印机状态
返回:
0 打印机准备就绪
1 打印机打印中
2 打印机缺纸
6 打印机开盖
* 其他出错
HanyinPlugin.Getstatus(res => {});
37.文字自动换行
参数:
{
x: "", // 文字的起始的 x 坐标
y: "", // 文字的起始的 y 坐标
size: 3, // 字体
3:20x20 或 10x20,视中英文而定。
4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
8:24x24 或 12x24,视中英文而定。
55:16x16 或 8x16,视中英文而定
isbole: true, // 加粗 true: 加粗 false: 不加粗
isdouble: true, // 放大两倍字体 true:放大 false:不放大
str: "" // 要打印的文本
type: 1 // 1或2
}
注意:该功能 type 有两个接口分别是 1 和 2。前者不能使用泰语。后者打印机 固件必须在 V1.01.40.01 以上且文本字节数不得超过 1024,超 过部分自动忽略(不支持 4 寸 机型);
返回: 大于0:正常,否则异常
HanyinPlugin.AutLine(params, res => {});
38.文字在文本框内居中显示
参数:
{
command: 0, // 0: 水平 1: 垂直
x: "", // 文本框起始的 x 坐标
y: "", // 文本框起始的 y 坐标
width: "", // 文本框的宽度
size: "",
3:16x16 或 8x16,视中英文而定。
4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
8:24x24 或 12x24,视中英文而定。
55:16x16 或 8x16,视中英文而定。
str: "", // 要打印的文本
}
返回: 大于0:正常,否则异常
HanyinPlugin.AutCenter(params, res => {});
39.设置打印机纸张类型
page | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
A300 | 连续纸 | 标签纸 | 后黑标 | 前黑标 | 三寸黑标 | 两寸黑标 |
T300 | 连续纸 | 三寸黑标 | 两寸黑标 | 后黑标 | 标签纸 | 前黑标 |
参数:
{
page: 0,
}
返回: 大于0:正常,否则异常
HanyinPlugin.papertypeCPCL(params, res => {});
40.旋转 180 度打印
返回: 大于0:正常,否则异常
注意:它不能与 Print()同时使用
HanyinPlugin.PoPrint(res => {});
41.设置打印完成时状态开关
参数:
{
isopen: true, // true:开。 false:关
}
注意:它需要跟 getEndStatus()配合使用,使用完记得关闭
HanyinPlugin.openEndStatic(res => {});
42.获取打印完成时状态
参数:
{
time: 10000, // 获取状态超时时间(单位 秒)
}
返回:
0:打印成功。
1:打印失败(缺纸)。
2:打印失败(开盖)。
-1:获取状态超时
其他: 获取错误
注意: 它需要跟 openEndStatic(boolean isopen)配合使用(打印机固件版本必须 V1.01.27.01以上)
HanyinPlugin.getEndStatus(params, res => {});
43.打印机回退
参数:
{
feed: 1, // 回退距离。(单位/行,范围:1-255)
}
返回: 大于0:正常,否则异常
HanyinPlugin.ReverseFeed(params, res => {});
44.水印
参数:
{
x: "", // 横坐标
y: "", // 纵坐标
size: 55, // 字体大小 55:16(px)。 24:24(px)。 56:32(px)。 其他:24(px)。
background: "", // 背景黑度(0-255)
data: "", // 数据
}
返回: 大于0:正常,否则异常
HanyinPlugin.PrintBackground(params, res => {});
45.获取打印机 SN
返回: 打印机 SN
HanyinPlugin.GetPrintSN(res => {});
46.获取文字自动换行打印的高度
参数:
{
y: "", // 文字的起始的 y 坐标
x: "", // 文字的起始的 x 坐标
width: "", // 一行打印的宽度
size: 3,
3:20x20 或 10x20,视中英文而定。
4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
8:24x24 或 12x24,视中英文而定。
55:16x16 或 8x16,视中英文而定
isbole: true, // true:加粗。 false:不加粗。
isdouble: true, // true:放大。 false:不放大。
str: "" // 要打印的文本
}
返回: 打印出的文字的总高度
HanyinPlugin.GetAutLineHeight(params, res => {});
46.设置打印机编码和设置 SDK 编码
* codepage:代码页。
* ISO8859-1 :西欧语 对应的 HanyinPlugin.LanguageEncode=”iso8859-1”
* ISO8859-2 :拉丁语(2) 对应的 HanyinPlugin.LanguageEncode=”iso8859-2”
* ISO8859-3 :拉丁语(3) 对应的 HanyinPlugin.LanguageEncode=”iso8859-3”
* ISO8859-4 :波罗的语 对应的 HanyinPlugin.LanguageEncode=”iso8859-4”
* ISO8859-5 :西里尔语 对应的 HanyinPlugin.LanguageEncode=”iso8859-5”
* ISO8859-6 :阿拉伯语 对应的 HanyinPlugin.LanguageEncode=”iso8859-6”
* ISO8859-8 :希伯来语 对应的 HanyinPlugin.LanguageEncode=”iso8859-8”
* ISO8859-9 :土耳其语 对应的 HanyinPlugin.LanguageEncode=”iso8859-9”
* ISO8859-15 :拉丁语(9) 对应的 HanyinPlugin.LanguageEncode=”iso8859-15”
* WPC1253 :希腊语(windows) 对应的 HanyinPlugin.LanguageEncode=”iso8859-11”
* KU42:希腊语(ISO) 对应的 HanyinPlugin.LanguageEncode=”iso8859-7”
* TIS18: 泰语 对应的 HanyinPlugin.LanguageEncode=”windows-874”
* Khemr:高棉语 对应的 HanyinPlugin.LanguageEncode=”UnicodeBigUnmarked”
打印机编码
参数:
{
codepage:"ISO8859-1"
}
返回: 大于 0:正常,否则异常
注意: 需要结合HanyinPlugin.LanguageEncode一起使用
HanyinPlugin.Country(params, res=>{})
设置 SDK 编码
参数:
{
LanguageEncode:"iso8859-1"
}
返回: 无
注意: 需要结合HanyinPlugin.Country一起使用
HanyinPlugin.LanguageEncode(params, res=>{})
例子:
HanyinPlugin.printAreaSize({**});
HanyinPlugin.Country({codepage:"ISO8859-1"},res=>{});
HanyinPlugin.LanguageEncode({LanguageEncode:"iso8859-1"},res => {});
HanyinPlugin.Print()
47.发数据函数
参数:
{
bData:"需要发给打印机的数据" //byte[]
}
返回: 大于 0:正常,否则异常
HanyinPlugin.WriteData(params, res=>{})
48.读数据函数
参数:
{
second:1
}
返回: 读取到数据
注意: 单位:秒
HanyinPlugin.ReadData(params, res=>{})