##概述 本插件封装了雷丹打印机的打印插件。
var leidenSDK = api.require('leidenSDK');
leidenSDK.scan(function(ret,err) {
console.log(JSON.stringify(ret));
})
说明
var json = {"mac":"DC:0D:30:64:FB:D6"};
leidenSDK.connect(json,function(ret,err) {
console.log(JSON.stringify(ret));
})
说明
function printf() {
var json = {
"labels":[
{
"labelW":50 * 8,//标签的宽度 50的单位mm,8 为打印机上 mm 与 px的转化单位。必须
"labelH":50 * 8,//同标签宽度。必须
"number":1,// 打印的张数。不必须 默认为1
"bitmaps":[// 打印的图片数据。不必须。没有数据则打印一张空白标签
{
"x":0 * 8,//同标签宽度。当前图片的x坐标。必须
"y":0 * 8,//同标签宽度。当前图片的x坐标。必须
"WD":25 * 8,//同标签宽度。当前图片的宽度。必须
"HT":25 * 8,//同标签宽度。当前图片的高度。必须
"bitmapPath":"/storage/emulated/0/logo.png"// 图片路径。必须
}
]
},{
"labelW":50 * 8,//标签的宽度 50的单位mm,8 为打印机上 mm 与 px的转化单位。必须
"labelH":100 * 8,//同标签宽度。必须
"number":2,// 打印的张数。不必须 默认为1
"bitmaps":[// 打印的图片数据。不必须。没有数据则打印一张空白标签
{
"x":0 * 8,//同标签宽度。当前图片的x坐标。必须
"y":0 * 8,//同标签宽度。当前图片的x坐标。必须
"WD":30 * 8,//同标签宽度。当前图片的宽度。必须
"HT":30 * 8,//同标签宽度。当前图片的高度。必须
"bitmapPath":"/storage/emulated/0/logo.png"// 图片路径必须
}
]
}
]
};
leidenSDK.printfLabels(json,function(ret,err) {
console.log(JSON.stringify(ret));
})
}
说明
需要注意的是:bitmapPath要保证有图片并且有权限访问(Android10 无法访问沙盒外的图片,切记)
返回的数据: {"resultType":1,"result":"打印成功"}
resultType代表的意义: //打印成功 int LEIDEN_PRINTF_RESULT_SUCCESS = 1; //打印错误 int LEIDEN_PRINTF_RESULT_CMD_ERROR = 2; //蓝牙未连接 int LEIDEN_PRINTF_RESULT_BLUETOOTH = 3;
一般不要在开发时调整好JSON,不要开放给用户设置
环境变量设置接口,不需要进行蓝牙连接
环境变量的JSON代表的意义:
//打印速度 1 -- 高速 2 -- 标准 3 -- 中速 4 -- 低速 private int printfSpeed = 2; //打印浓度 范围 1 - 15 private int printfPotency = 8; //打印媒介 1 - 热敏 2 - 碳带 private int printfMedium = 2; //标签种类 1 - 黑标 2 - 模切 3 - 连续 private int labelType = 3; //顶部偏移 ±支持标签最大高度 -10 --- +10 private int topDeviation = 0; //打印模式 1 - 标准模式 2 - 连续模式 3 - 剥离模式 4 - 切刀模式 private int printfModel = 1; //剥离方式 1 - 传感器 2 - 按键 当 printfMode = 剥离模式时有效 private int beStrippedModel = 1; //剥离送纸量 当 printfMode = 剥离模式时有效 private int beStrippedFeedVolume = 0; //切纸张数 [0-9999] 当 printfModel == 切刀模式模式时有效 private int cutNumber = 0; //切刀送纸量 当 printfModel == 切刀模式时有效 private int cutterFeedVolume = 0; //标准送纸量 当 printfModel == 标准模式时有效 private int standardFeedVolume = 0;
5. 设置的为连续纸的案例:
function setCurrentEnvContinue() {
leidenSDK.getCurrentEnviron(function(ret,err){
console.log(JSON.stringify(ret));
ret.labelType = 3;
leidenSDK.setCurrentEnviron(ret,function(ret,err){
api.alert({msg: JSON.stringify(ret)});
});
})
}
6. 设置的为连续纸的案例:
function setCurrentEnvContinue() {
leidenSDK.getCurrentEnviron(function(ret,err){
console.log(JSON.stringify(ret));
ret.labelType = 3;
leidenSDK.setCurrentEnviron(ret,function(ret,err){
api.alert({msg: JSON.stringify(ret)});
});
})
}
调用案例:
leidenSDK.isConnect(function(ret,err) {
api.alert({msg: JSON.stringify(ret)});
});
返回的数据:
{“result”:true/false}
调用案例:
var json = {"content":"JOB\nDEF PW=560,PH=640\nSTART\nQTY P=1\nEND\nJOBE\n"};
leidenSDK.writer(json,function(ret,err) {
if (ret.result == 1) {
alert("发送成功");
} else {
alert("发送失败");
}
})
调用案例:
leidenSDK.closeConnect();