const api = uni.requireNativePlugin('DothanTech-LPAPI'); function request(action, data, callback) { // console.log(`### Request: action = ${action}`); // console.log(data ? JSON.stringify(data) : data); return new Promise((resolve) => { if (api && api[action]) { api[action](data || {}, result => { // console.log(`### Response:`); // console.log(JSON.stringify(data)); if (result && result.code === 0) { resolve(result.data || true); } else { resolve(undefined); // console.log(result.data); } if (typeof callback === "function") { callback(result.code === 0 ? result.data : null); } }); } else { if (api) { resolve(undefined); console.log('LPAPI插件加载失败'); } else { resolve(undefined); console.log('未检测到该方法:' + action); } } }); } const lpapi = { /** * 获取指定型号的所有打印机; * @param { string | {name?: string} } data 参数; * @returns { {name: string, macAddress?: string}[] } 获取打印机列表; */ getPrinters(data) { if (typeof data === 'string') { data = { name: data }; } return request('getPrinters', data); }, /** * 获取指定型号的一台打印机; * @param { string | {name?: string} } data 参数; * @returns { {name: string, macAddress?: string} } 获取检测到的第一台打印机; */ getFirstPrinter(data) { if (typeof data === 'string') { data = { name: data }; } return request('getFirstPrinter', data); }, /** * * @param { string | {name?: string}} data 参数; */ openPrinter(data, callback) { if (typeof data === 'string') { data = { name: data }; } return request('openPrinter', typeof data === 'object' ? data : {}, callback); }, /** * 获取当前已连接打印机名称; */ getPrinterName() { return request('getPrinterName', {}); }, /** * 获取当前已连接打印机信息; * 调用该接口前要确保打印机已连接; */ getPrinterInfo() { return request('getPrinterInfo', {}); }, // /** // * 获取当前打印机的连接状态; // */ // getPrinterState() { // return request('getPrinterState', {}); // }, /** * 当前打印机是否已经打开; */ isPrinterOpened() { return request('isPrinterOpened', {}); }, /** * * @param { string | { * name?: string; * model: string; * }} data 参数; * @returns */ isPrinterSupported(data) { data = typeof data === "object" ? data : { name: arguments[0], model: arguments[1] }; return request('isPrinterSupported', data || {}); }, // /** // * 取消当前打印任务; // */ // cancel() { // return request('cancel', {}); // }, /** * 关闭打印机; */ closePrinter() { return request('closePrinter', {}); }, /** * 打印BASE64图片; * @param { { * image: string, * PRINT_DENSITY?: number, * PRINT_SPEED?: number, * PRINT_COPIES?: number * } } data */ printImage(data) { return request('printImage', data); }, /** * 开始打印任务; * @param { { * width: number, * height: number, * orientation?: number * } } data 参数; */ startJob(data) { return request('startJob', data); }, // /** // * 终止打印任务; // */ // abortJob() { // return request('abortJob', {}); // }, /** * 提交打印任务; * @param {{ * PRINT_DENSITY?: number, * PRINT_SPEED?: number, * PRINT_COPIES?: number * }} data 参数; */ commitJob(data) { return request('commitJob', data); }, // /** // * 开始打印页面; // */ // startPage() { // return request('startPage', {}); // }, // /** // * 结束打印页面; // */ // endPage() { // return request('endPage', {}); // }, /** * 结束打印任务; */ endJob() { return request('endJob', {}); }, /** * 获取当前的打印任务; */ getJobPages() { return request('getJobPages', {}); }, // /** * 设置后续绘制参数,譬如字体名称,二维码纠错级别等等; * @param { { * name: string, * value: * * } } data 参数 */ setDrawParam(data) { return request('setDrawParam', data); }, // /** // * 获取当前内容的旋转角度; // */ // getItemOrientation() { // return request('getItemOrientation', {}); // }, /** * 设置后续内容的旋转方向; * @param { number | { orientation: [0, 90, 180, 270]}} data 参数; */ setItemOrientation(data) { data = typeof data === 'object' ? data : { orientation: data }; return request('setItemOrientation', data); }, // /** // * 获取当前的水平对齐方式; // */ // getItemHorizontalAlignment() { // return request('getItemHorizontalAlignment', {}); // }, /** * 设置水平对齐方式; * @param { number | { alignment: [0, 1, 2]}} data 参数; */ setItemHorizontalAlignment(data) { data = typeof data === 'object' ? data : { alignment: data }; return request('setItemHorizontalAlignment', data); }, // /** // * 获取当前的垂直对齐方式; // */ // getItemVerticalAlignment() { // return request('getItemVerticalAlignment', {}); // }, /** * 设置垂直对齐方式; * @param { number | { alignment: [0, 1, 2]}} data 参数; */ setItemVerticalAlignment(data) { data = typeof data === 'object' ? data : { alignment: data }; return request('setItemVerticalAlignment', data); }, /** * 设置背景色; * 默认白色底色:0xFFFFFFFF; * 如需透明色,可设置:0x00000000; * @param { number | {color: number} } data 参数; */ setBackground(data) { data = typeof data === 'object' ? data : { color: data }; return request('setBackground', data); }, // *************************************************** // * 打印相关图形对象。 // *************************************************** /** * 绘制字符串; * @param { { * text: string, * x: number, * y: number, * width: number, * height: number, * fontHeight: number, * fontStyle: number, * fontName: string * } } data */ drawText(data) { return request('drawText', data); }, /** * 绘制一维码; * @param { { * text: string, * x: number, * y: number, * width: number, * height: number, * textHeight: number, * type: number * } } data */ draw1DBarcode(data) { return request('draw1DBarcode', data); }, /** * 绘制二维码; * @param { { * text: string, * x: number, * y: number, * width: number * } } data */ draw2DQRCode(data) { return request('draw2DQRCode', data); }, /** * 绘制PDF417码; * @param {{ * text: string, * x: number, * y: number, * width: number, * height: number * }} data */ draw2DPdf417(data) { return request('draw2DPdf417', data); }, /** * 绘制矩形框; * @param {{ * x: number, * y: number, * width: number, * height: number, * lineWidth: number * }} data */ drawRectangle(data) { return request('drawRectangle', data); }, /** * 绘制填充矩形; * @param {{ * x: number, * y: number, * width: number, * height: number * }} data */ fillRectangle(data) { return request('fillRectangle', data); }, /** * 绘制圆角矩形框; * @param {{ * x: number, * y: number, * width: number, * height: number, * cornerWidth: number, * cornerHeight: number, * lineWidth: number * }} data */ drawRoundRectangle(data) { return request('drawRoundRectangle', data); }, /** * 填充圆角矩形; * @param {{ * x: number, * y: number, * width: number, * height: number, * cornerWidth: number, * cornerHeight: number * }} data */ fillRoundRectangle(data) { return request('fillRoundRectangle', data); }, /** * 绘制椭圆; * @param {{ * x: number, * y: number, * width: number, * height: number, * lineWidth: number * }} data */ drawEllipse(data) { return request('drawEllipse', data); }, /** * 填充椭圆; * @param {{ * x: number, * y: number, * width: number, * height: number * }} data */ fillEllipse(data) { return request('fillEllipse', data); }, /** * 绘制圆形; * @param {{ * x: number, * y: number, * radius: number, * lineWidth: number * }} data */ drawCircle(data) { return request('drawCircle', data); }, /** * 填充圆; * @param {{ * x: number, * y: number, * radius: number * }} data */ fillCircle(data) { return request('fillCircle', data); }, /** * 绘制直线; * @param {{ * x1: number, * y1: number, * x2: number, * y2: number, * lineWidth: number * }} data */ drawLine(data) { return request('drawLine', data); }, /** * 绘制虚线; * @param {{ * x1: number, * y1: number, * x2: number, * y2: number, * dashLen: number[], * lineWidth: number * }} data */ drawDashLine(data) { return request('drawDashLine', data); }, /** * 绘制图片; * @param {{ * image: string, * x: number, * y: number, * width: number, * height: number, * threshold: number * }} data */ drawImage(data) { return request('drawImage', data); } } export default lpapi;