cordova.plugin.JcPrinter/www/jcPrinter.js

174 lines
9.1 KiB
JavaScript
Raw Normal View History

2023-10-09 16:51:48 +08:00
var exec = require('cordova/exec');
2023-10-09 20:56:07 +08:00
/**
*
* @param {*} data Instance.generateLabelJson()[]
* @param {*} info
* //Z401/B32/B32R/T8为300dpi机型其他机型均为200dpi
{
"printerImageProcessingInfo": {//打印附加信息
"orientation": 0,//旋转角度
"margin": [//边距
0,
0,
0,
0
],
"printQuantity": 1,//用于指定当前页的打印份数。例如如果你需要打印3页第一页打印3份第二页打印2份第三页打印5份那么在3次提交数据时printQuantity值分别应为325。
"horizontalOffset": 0,//水平偏移(暂不生效)
"verticalOffset": 0,//垂直偏移(暂不生效)
"width": 60,//画布宽度单位mm
"height": 40,//画布高度单位mm
"printMultiple": 8,//打印倍率 200dpi的打印机为8300dpi的打印机为11.81
"epc": ""//RFID标签写入数据B32R机器打印RFID标签时填充数据其他场景默认”“
}
}
* @param {*} success
* @param {*} error
*/
2023-10-10 12:07:01 +08:00
exports.print = async function (data,info) {
return new Promise((resolve, reject) => exec(resolve,reject, 'JcPrinter', 'print', [data,info]));
2023-10-09 16:51:48 +08:00
};
2023-10-10 12:07:01 +08:00
exports.getList = function (arg0) {
return new Promise((resolve, reject) => exec(resolve,reject, 'JcPrinter', 'getList', [arg0]));
2023-10-09 16:51:48 +08:00
};
2023-10-10 12:07:01 +08:00
exports.connectPrinter = function (arg0) {
return new Promise((resolve, reject) => exec(resolve,reject,'JcPrinter', 'connectPrinter', [arg0]));
2023-10-09 19:48:45 +08:00
}
2023-10-10 00:14:58 +08:00
2023-10-10 12:07:01 +08:00
exports.isConnection = function (arg0) {
return new Promise((resolve, reject) => exec(resolve,reject,'JcPrinter', 'isConnection', [arg0]));
}
2023-10-09 19:48:45 +08:00
2023-10-10 00:14:58 +08:00
exports.Instance = {
2023-10-09 19:48:45 +08:00
/**
* 初始化画板
* 该方法用于初始化绘图板以便进行绘制操作
*
* @param width 绘图板的宽度单位毫米
* @param height 绘图板的高度单位毫米
* @param rotate 旋转角度可选值090180270表示绘图板的旋转角度
* @param fontDir 字体文件路径用于绘制文本时指定字体暂不支持自定义默认即可
*/
2023-10-10 00:14:58 +08:00
drawEmptyLabel: async function (width, height, rotate, fontDir) {
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","action",["drawEmptyLabel",[width, height, rotate,fontDir||""]]));
2023-10-10 00:14:58 +08:00
},
2023-10-09 19:48:45 +08:00
/**
* 绘制文本
* 该方法用于在绘图板上绘制文本包括位置内容字体样式等信息
*
* @param x 位置x单位毫米
* @param y 位置y单位毫米
* @param width 文本框宽度单位毫米
* @param height文本框高度单位毫米
* @param value 文本内容
* @param fontFamily 字体名称传入空字符串时使用默认字体暂时用默认字体
* @param fontSize 字体大小单位毫米
* @param rotate 旋转角度可选值090180270
* @param textAlignHorizontal 水平对齐方式0-左对齐1-居中对齐2-右对齐
* @param textAlignVertical 垂直对齐方式0-顶对齐1-垂直居中2-底对齐
* @param lineModel 行模式1-宽高固定内容大小自适应2-宽度固定高度自适应3-宽高固定超出内容用省略号表示4-宽高固定超出内容直接裁切6-宽高固定内容超过预设的宽高时自动缩小
* @param letterSpace 字母之间的标准间隔单位毫米
* @param lineSpace 行间距倍距单位毫米
* @param mFontStyles 字体样式数组长度为4依次表示加粗斜体下划线删除下划线暂不生效
*/
2023-10-10 00:14:58 +08:00
drawLabelText: async function (x, y, width, height, value,fontFamily, fontSize, rotate, textAlignHorizontal, textAlignVertical, lineModel, letterSpace, lineSpace, mFontStyles){
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","action",["drawLabelText",[x, y, width, height, value, fontFamily||"", fontSize, rotate, textAlignHorizontal, textAlignVertical, lineModel, letterSpace, lineSpace, mFontStyles]]));
2023-10-10 00:14:58 +08:00
},
2023-10-09 19:48:45 +08:00
/**
* 绘制一维码
* 该方法用于在绘图板上绘制一维码包括位置类型内容等信息
*
* @param x 水平坐标x单位毫米
* @param y 垂直坐标y单位毫米
* @param width 宽度单位毫米
* @param height 高度单位毫米
* @param codeType 一维码类型可选值20-CODE12821-UPC-A22-UPC-E23-EAN824-EAN1325-CODE9326-CODE3927-CODEBAR28-ITF25
* @param value 一维码内容
* @param fontSize 字号大小单位毫米
* @param rotate 旋转角度可选值090180270
* @param textHeight 文本高度单位毫米
* @param textPosition 文本位置可选值0-下方显示1-上方显示2-不显示
*/
2023-10-10 00:14:58 +08:00
drawLabelBarCode: async function (x, y, width, height, codeType, value, fontSize, rotate, textHeight, textPosition){
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","action",["drawLabelBarCode",[x, y, width, height, codeType, value, fontSize, rotate, textHeight, textPosition]]));
2023-10-10 00:14:58 +08:00
},
2023-10-09 19:48:45 +08:00
/**
* 绘制二维码
* 该方法用于在绘图板上绘制二维码包括位置类型内容等信息
*
* @param x 水平坐标x单位毫米
* @param y 垂直坐标y单位毫米
* @param width 宽度单位毫米
* @param height 高度单位毫米
* @param value 二维码内容
* @param codeType 二维码类型可选值31-QR_CODE32-PDF41733-DATA_MATRIX34-AZTEC
* @param rotate 旋转角度可选值090180270
*/
2023-10-10 00:14:58 +08:00
drawLabelQrCode: async function (x, y, width, height, value, codeType, rotate){
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","action",["drawLabelQrCode",[x, y, width, height, value, codeType, rotate]]));
2023-10-10 00:14:58 +08:00
},
2023-10-09 19:48:45 +08:00
/**
* 绘制图形
* 该方法用于在绘图板上绘制图形包括位置类型线条样式等信息
*
* @param x 水平坐标x单位毫米
* @param y 垂直坐标y单位毫米
* @param width 宽度单位毫米
* @param height 高度单位毫米
* @param graphType 线条类型可选值1-实线2-虚线类型虚实比例1:1
* @param rotate 旋转角度可选值090180270
* @param cornerRadius 圆角半径单位毫米
* @param lineWidth 线宽单位毫米
* @param lineType 图形类型可选值1-2-椭圆3-矩形4-圆角矩形
* @param dashWidth 虚线样式数组中包含实线段长度和空线段长度
*/
2023-10-10 00:14:58 +08:00
drawLabelGraph: async function (x, y, width, height, graphType, rotate, cornerRadius, lineWidth, lineType, dashWidth){
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","action",["drawLabelGraph",[x, y, width, height, graphType, rotate, cornerRadius, lineWidth, lineType, dashWidth]]));
2023-10-10 00:14:58 +08:00
},
2023-10-09 19:48:45 +08:00
/**
* 绘制图像
* 该方法用于在绘图板上绘制图像包括图像的Base64数据位置大小旋转角度等信息
*
* @param imageData 图像的Base64数据去除数据头
* @param x 水平坐标x单位毫米
* @param y 垂直坐标y单位毫米
* @param width 宽度单位毫米
* @param height 高度单位毫米
* @param rotate 旋转角度可选值090180270
* @param imageProcessingType 处理算法默认1即可
* @param imageProcessingValue 阈值 阈值默认127即可
*/
2023-10-10 00:14:58 +08:00
drawLabelImage: async function (imageData, x, y, width, height, rotate, imageProcessingType, imageProcessingValue){
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","action",["drawLabelImage",[imageData, x, y, width, height, rotate, imageProcessingType, imageProcessingValue]]));
2023-10-10 00:14:58 +08:00
},
2023-10-09 19:48:45 +08:00
/**
* 绘制线条
* 该方法用于在绘图板上绘制线条包括位置大小旋转角度线条类型等信息
*
* @param x 水平坐标x单位毫米
* @param y 垂直坐标y单位毫米
* @param width 宽度单位毫米
* @param height 高度单位毫米
* @param rotate 旋转角度可选值090180270
* @param lineType 线条类型1:实线2:虚线类型虚实比例1:1
* @param dashWidth 线条为虚线时的宽度包含实线段长度和空线段长度单位毫米
*/
2023-10-10 00:14:58 +08:00
drawLabelLine: async function (x, y, width, height, rotate, lineType, dashWidth){
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","action",["drawLabelLine",[x, y, width, height, rotate, lineType, dashWidth]]));
2023-10-10 00:14:58 +08:00
},
2023-10-09 19:48:45 +08:00
2023-10-10 00:14:58 +08:00
generateLabelJson: async function (){
2023-10-09 20:56:07 +08:00
return new Promise((resolve, reject) => exec(resolve,reject,"JcPrinter","generateLabelJson"));
2023-10-09 19:48:45 +08:00
}
2023-10-10 00:14:58 +08:00
};