123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450 |
- 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;
|