更新记录
1.0.0(2023-08-11)
芝柯打印机,支持Wi-Fi、蓝牙、USB等方式连接,打印文本、pdf、图片、二维码、条形码等
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.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原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
芝柯打印机,支持Wi-Fi、蓝牙、USB等方式连接,打印文本、pdf、图片、二维码、条形码等
支持定制,联系方式 QQ:252797991
var zhikePrint = uni.requireNativePlugin("wrs-zhikePrint");
-
USB连接打印机,只要通过USB连接上打印机即可,无需调用连接接口 监听/获取USB连接信息可以采用USB插件https://ext.dcloud.net.cn/plugin?id=13300
-
蓝牙连接 蓝牙address可以通过蓝牙插件获取https://ext.dcloud.net.cn/plugin?id=13533
var params = {};
params.address = this.address;
zhikePrint.connectBluetooth(params, (resp) => {
this.showMsg(JSON.stringify(resp))
})
断开蓝牙
zhikePrint.disconnectBluetooth()
- wifi连接
var params = {};
params.ip = this.ip; // 打印机IP
zhikePrint.connectWifi(params)
- 字符串指令形式打印
var str = "! 0 200 200 400 1\n" +
"GAP-SENSE\n" +
"SETBOLD 2\n" +
"SETMAG 2 2 \n" +
"T 24 0 16 24 惠州-惠东1仓网格站\n" +
"SETBOLD 1\n" +
"SETMAG 1 1 \n" +
"B 128 2 1 75 16 80 11234567890643\n" +
"T 24 0 152 165 11234567890643\n" +
"SETSP 2\n" +
"ML 35\r\n" +
"T 24 0 16 230 " +
"托盘:TP00933\r\n" +
"SKU:59\r\n" +
"容器数:4\r\n" +
"打印时间:2021-04-02T22:11:59.305\r\n" +
"ENDML\r\n" +
"SETSP 0\n" +
"SETSP 2\n" +
"ML 35\r\n" +
"T 24 0 240 264 " +
"SKU件数:519\r\n" +
"打印人:卢子红\r\n" +
"ENDML\r\n" +
"SETSP 0\n" +
"FORM\n" +
"PRINT\n";
var params = {};
params.str = str;
params.sendType = this.sendType;
zhikePrint.printStr(params, (resp) => {
this.showMsg(JSON.stringify(resp))
var flag = resp.flag;
if (flag) { // 打印成功
} else {
}
});
- 接口形式打印
var data = [];
data.push({
lineType: "pageSetup",
pageWidth: 580,
pageHeight: 400
});
data.push({
lineType: "drawQrCode",
start_x: 10,
start_y: 10,
text: "123456789012",
rotate: 0,
ver: 6,
lel: 4
});
data.push({
lineType: "print",
horizontal: 0,
skip: 0
});
var params = {};
params.data = data;
params.sendType = this.sendType;
zhikePrint.print(params, (resp) => {
this.showMsg(JSON.stringify(resp))
var flag = resp.flag;
if (flag) { // 打印成功
} else {
}
});
data里面的对象可以为一下几种:
- 设置页面宽高
{
lineType: "pageSetup",
pageWidth: 580, // 打印纸宽度
pageHeight: 400, // 打印纸高度
r: 0, 旋转180度打印(r可选参数) 0:不旋转;1:旋转90;2:旋转180;3:旋转270
gap: 0 // 走纸方式(gap可选参数),不走纸;1:设置标签检测;2:设置左黑标检测指令;3:设置右黑标检测指令
}
参数r和gap需要同时传才有效
- 打印文字
{
lineType: "drawText",
text_x: 0, // 文字起始横坐标
text_y: 0, // 文字起始纵坐标
text: "we5455", // 要打印的文本内容
fontSize: 1, // fontSize - 字体大小
rotate: 0, // 旋转角度(逆时针) 支持 0; 90; 180 ;270;
bold: 1, // 打印粗细
reverse: false, // 反向打印
underline: false // 下划线
}
- 打印条形码
{
lineType: "drawBarCode",
start_x: 0, // 条形码起始横坐标
start_y: 0, // 条形码起始纵坐标
text: "we5455", // 条形码的内容
type: 1, // 条形码类型 0:CODE39; 1:CODE128;2:CODE93; 3:CODEBAR; 4:EAN8; 5:EAN13; 6:UPCA; 7:UPC-E; 8:I2OF5
rotate: 0, // 旋转角度 支持 0:水平条码;1:竖直条码
linewidth: 1, // 条形码线宽度
height: 10 // 条形码高度
}
- 打印二维码
{
lineType: "drawQrCode",
start_x: 0, // 二维码起始横坐标
start_y: 0, // 二维码起始纵坐标
text: "we5455", // 二维码内容
rotate: 0, // 旋转角度
ver: 6, // 二维码放大倍数,值的范围是1-32,默认填6
lel: 4 // 二维码版本型号,值的范围是1-40,越大标识尺寸越大,尺寸17+n*4,0表示自动
}
- 打印图片
{
lineType: "drawImageFormFile",
start_x: 0, // 横坐标
start_y: 0, // 纵坐标
filepath: "/xxxx/xx/aa.png", // 本地图片绝对路径
}
- 打印图片
{
lineType: "drawImageFormFile",
start_x: 0, // 横坐标
start_y: 0, // 纵坐标
bmp_size_x: 0, // 位图高
bmp_size_y: 0, // 位图宽
path: "/xxxx/xx/aa.png", // 本地图片绝对路径
}
- 设置打印次数
{
lineType: "setPrintTime",
time: 1
}
- 执行打印操作,数组一定以这个结尾才能执行打印
{
lineType: "print",
horizontal: 0,
skip: 0 // 走纸方式,0:不走纸;1:设置标签检测;2:设置左黑标检测指令;3:设置右黑标检测指令;
}
- 打印PDF
var absPath = plus.io.convertLocalFileSystemURL("_www")
// Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
if (absPath.endWith('/')) {
absPath = absPath.substring(0, absPath.length - 1)
}
// 静态普通文件夹下的站点
let path = absPath + "/static/test.pdf"
var params = {};
params.maxWeight = 560;
params.path = path;
params.sendType = this.sendType;
zhikePrint.printPDF(params, (resp) => {
this.showMsg(JSON.stringify(resp))
})
- 以字节指令形式发送打印命令,给精通打印指令的人员使用 字节、十六进制、gbk/ascii等转换可以使用这个插件https://ext.dcloud.net.cn/plugin?id=12803
var params = {};
params.data = “0102FF”;
params.sendType = this.sendType;
zhikePrint.writeBytes(params, (resp) => {
this.showMsg(JSON.stringify(resp))
})