蓝牙连接德佟打印机打印

1、导入插件; 在插件市场中搜索LPAPI,进入之后,点击右侧的“购买for云打包”,选择目标项目,按照提示操作即可;
2、 配置插件; 用HBuilderX打开目标项目,选择manifest.json,打开配置视图,在右侧选择“App原生插件配置”,找到“云端插 件”,点击“选择云端插件”,勾选目标插件即可;
3、配置蓝牙权限; 标签打印机主要是用蓝牙进行数据传输的,所以在使用前需要配置先蓝牙操作权限;

<uses-permission android:name=\"android.permission.BLUETOOTH\"/>
<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>
<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>

4、勾选配置


5、新建lpapi-uniplugin文件
6、再页面中导入封装的js接口;

    import api from './lpapi-uniplugin';

检测打印机

 this.printerList.splice(0);const list = await api.getPrinters();if (list.length > 0) {for (let item of list) {this.printerList.push(item.name);}} else {this.printerList.push("未检测到打印机");}// 打印二维码await api.draw2DQRCode({text: '德佟电子科技有限公司',x: 5,y: 5,width: 35});// 提交打印任务,开始打印await api.commitJob();

lpapi-uniplugin.js

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) {console.log(data,"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 | {}} data 参数;* @param {string} data.name* @param {string} data.model* @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 {{}} data* @param {string} data.image* @param {number} data.PRINT_DENSITY* @param {number} data.PRINT_SPEED* @param {number} data.PRINT_COPIES*/printImage(data) {return request("printImage", data);},/*** 开始打印任务;* @param {{}} data 参数;* @param {number} data.width* @param {number} data.height* @param {number} data.orientation*/startJob(data) {return request("startJob", data);},// /**//  * 终止打印任务;//  */// abortJob() {//    return request('abortJob', {});// },/*** 提交打印任务;* @param {{}} data 参数;* @param {number} data.PRINT_DENSITY* @param {number} data.PRINT_SPEED* @param {number} data.PRINT_COPIES*/commitJob(data) {return request("commitJob", data);},// /**//  * 开始打印页面;//  */// startPage() {//  return request('startPage', {});// },// /**//  * 结束打印页面;//  */// endPage() {//     return request('endPage', {});// },/*** 结束打印任务;*/endJob() {return request("endJob", {});},/*** 获取当前的打印任务;*/getJobPages() {return request("getJobPages", {});},///*** 设置后续绘制参数,譬如字体名称,二维码纠错级别等等;* @param {{}} data 参数* @param {string} name* @param value*/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 {{}} data                 字符串绘制参数;* @param {string} data.text         待打印的字符串名称;* @param {number} data.x          字符串显示的X轴坐标位置(单位毫米);* @param {number} data.y             字符串显示的Y轴坐标位置(单位毫米);* @param {number} data.width         字符串显示区域宽度(单位毫米);* @param {number} data.height       字符串显示区域高度(单位毫米);* @param {number} data.fontHeight   字体大小(单位毫米);* @param {number} data.fontStyle    字体样式,默认位0;(0:常规,1:黑体,2:斜体,3:粗斜体)* @param {string} data.fontName   字体名称,默认位"黑体";* @param {boolean} data.autoReturn   字符串长度超过width之后,是否自动换行?默认位true;*/drawText(data) {return request("drawText", data);},/*** 绘制一维码;* @param {{}} data 一维码绘制参数;* @param {string} data.text,          一维码内容* @param {number} data.x,             一维码在坐标系X轴上的位置;* @param {number} data.y,             一维码在坐标系中Y轴上的位置;* @param {number} data.width,            一维码在坐标系中的宽度;* @param {number} data.height,          一维码高度;* @param {number} data.textHeight,        一维码下面显示的字符串高度,不需要的话可以设置位0;* @param {number} data.type            一维码类型:{@link BarcodeType}** @typedef {{*   UPC_A: 20,* UPC_E: 21,* EAN13: 22,* EAN8: 23,*  CODE39: 24,*    ITF25: 25,* CODABAR: 26,*   CODE93: 27,*    CODE128: 28,*   ISBN: 29,*  ECODE39: 30,*   AUTO: 60,* }} BarcodeType 一维码类型*/draw1DBarcode(data) {return request("draw1DBarcode", data);},/*** 绘制二维码;* @param {{}} data* @param {string} data.text           二维码内容* @param {number} data.x              X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置* @param {number} data.width         二维码大小(单位毫米)*/draw2DQRCode(data) {return request("draw2DQRCode", data);},/*** 绘制PDF417码;* @param {{}} data PDF417打印参数;* @param {string} data.text          打印内容* @param {number} data.x               X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)*/// draw2DPdf417(data) {//  return request("draw2DPdf417", data);// },/*** 绘制矩形框;* @param {{}} data* @param {number} data.x              X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)* @param {number} data.lineWidth        边框宽度(单位毫米)*/drawRectangle(data) {return request("drawRectangle", data);},/*** 绘制填充矩形;* @param {{}} data* @param {number} data.x              X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)**/fillRectangle(data) {return request("fillRectangle", data);},/*** 绘制圆角矩形框;* @param {{}} data* @param {number} data.x               X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)* @param {number} data.cornerWidth      圆角半径(单位毫米)* @param {number} data.cornerHeight  圆角半径(单位毫米)* @param {number} data.lineWidth     边框宽度(单位毫米)*/drawRoundRectangle(data) {return request("drawRoundRectangle", data);},/*** 填充圆角矩形;* @param {{}} data* @param {number} data.x                X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)* @param {number} data.cornerWidth      圆角半径(单位毫米)* @param {number} data.cornerHeight  圆角半径(单位毫米)*/fillRoundRectangle(data) {return request("fillRoundRectangle", data);},/*** 绘制椭圆;* @param {{}} data* @param {number} data.x              X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)* @param {number} data.lineWidth        边框宽度(单位毫米)*/drawEllipse(data) {return request("drawEllipse", data);},/*** 填充椭圆;* @param {{}} data* @param {number} data.x                X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)*/fillEllipse(data) {return request("fillEllipse", data);},/*** 绘制圆形;* @param {{}} data* @param {number} data.x               圆心X轴坐标位置(单位毫米)* @param {number} data.y             圆心Y轴坐标位置(单位毫米)* @param {number} data.radius            圆半径(单位毫米)* @param {number} data.lineWidth      边框宽度(单位毫米)*/drawCircle(data) {return request("drawCircle", data);},/*** 填充圆;* @param {{}} data* @param {number} data.x               圆心X轴坐标位置(单位毫米)* @param {number} data.y             圆心Y轴坐标位置(单位毫米)* @param {number} data.radius            圆半径(单位毫米)*/fillCircle(data) {return request("fillCircle", data);},/*** 绘制直线;* @param {{}} data* @param {number} data.x1              起点X轴坐标位置(单位毫米)* @param {number} data.y1                起点Y轴坐标位置(单位毫米)* @param {number} data.x2                终点X轴坐标位置(单位毫米)* @param {number} data.y2                终点Y轴坐标位置(单位毫米)* @param {number} data.lineWidth     线条宽度(单位毫米)*/drawLine(data) {return request("drawLine", data);},/*** 绘制虚线;* @param {{}} data* @param {number} data.x1             起点X轴坐标位置(单位毫米)* @param {number} data.y1                起点Y轴坐标位置(单位毫米)* @param {number} data.x2                终点X轴坐标位置(单位毫米)* @param {number} data.y2                终点Y轴坐标位置(单位毫米)* @param {number} data.dashLen[],        电话线线段长度数组(单位毫米)* @param {number} data.lineWidth        线条宽度(单位毫米)*/drawDashLine(data) {return request("drawDashLine", data);},/*** 绘制图片;* @param {{}} data* @param {string} data.image* @param {number} data.x             X轴坐标位置(单位毫米)* @param {number} data.y               Y轴坐标位置(单位毫米)* @param {number} data.width           绘制数据内容的宽度(单位毫米)* @param {number} data.height           绘制数据内容的高度(单位毫米)* @param {number} data.threshold        黑白转换阈值,默认是192*/drawImage(data) {return request("drawImage", data);},
};export default lpapi;

uniapp APP实现通过蓝牙连接打印机打印相关推荐

  1. Android 蓝牙连接打印机打印网络图片

    实现蓝牙连接打印机打印网络图片 经过自己一下午加一个小时的时间整理出来,希望能帮助到各位码兄弟! 主要分为以下几步: 将网络图片URL转为bitmap :其中需要进行网络请求,不可在主线程中进行,需另 ...

  2. 蓝牙连接打印机打印资产标签.

    新出一个需求,打印资产标签,扫描标签中二维码的时候,根据二维码内容展示资源详细信息; 二维码打印就不说了,蓝牙连接便携打印机,然后根据打印机厂家的API,排版打印即可,打印机厂家是杭州舜普. 贴一下便 ...

  3. 蓝牙连接打印机打印文字图片条形码二维码 用的是Gprinter打印机

    实现了蓝牙打印,正在进一步完善,欢迎留言交流 :) Github链接

  4. Android手机蓝牙连接热敏打印机 打印票据

    手机蓝牙连接热敏打印机 打印票据 话不多说上代码: 项目地址:可直接作为项目依赖 引用 allprojects {repositories {...maven { url 'https://jitpa ...

  5. 自己的电脑不能连接打印机打印怎么办

    近来,自己购买了一台小型的打印机,原本想着打印一些比较简单的东西,可是没有想到使用过程中困难多多,卡纸.打印字迹不清晰等问题一件件接着来,我开始怀疑难道我购买的打印机质量太差劲了吗? 相信不少人在打印 ...

  6. python连接打印机打印文档、图片、pdf文件等

    引言 python连接打印机进行打印,可能根据需求的不同,使用不同的函数模块. 如果你只是简单的想打印文档,比如office文档,你可以使用ShellExecute方法,对于微软office的文档.p ...

  7. Secure CRT自动连接打印机打印乱码问题

    最近发现了一件怪事,发现自己的电脑会自动连接打印机打印文件. 关键是打印出来的都是乱码,一行行的电波文,看的脑阔疼. 刚开始还不知道是什么原有导致的. 后来一狠心把打印机给删除了. 第二天,过了一段时 ...

  8. 远程计算机打印,win7系统电脑如何远程连接打印机打印文件

    打印机设备是办公不可缺少一部分,将有需要的文件打印出来,是很简单一件事情.如果打印机不是连着自己电脑的,这时通常的做法是拿着U盘拷贝到连接打印机的电脑上进行打印,这个方法比较麻烦.其实还有一种很便捷的 ...

  9. 关于前端页面连接打印机打印

    关于前端连接打印机打印 页面代码 逻辑代码需要引入JQ 页面代码 <div class="print-Box" ><div id="test" ...

最新文章

  1. RoboGuice 解析
  2. 工业用微型计算机笔记(1)-进制转换
  3. JavaXml教程(十)XML作为属性文件使用
  4. 解决windows指纹登录不灵问题
  5. Android N 多窗口模式,你需要知道的一切
  6. 用批处理启动常用服务
  7. 鸿蒙会取代emui,华为称自家手机运行鸿蒙系统正在推进 未来会取代安卓吗?
  8. ABP 集成 nswag 根据 Swagger API 自动生成操作类代码
  9. 湖南计算机专科学院分数线,湖南电子科技职业学院历年录取分数线
  10. iocomp iPlot使用说明24 Plot Pack Events绘图包事件
  11. Edraw安装教程(附下载链接)
  12. dsoframer java_dsoframer控件动态加载
  13. BatchPhoto Pro for Mac(照片批量处理软件)
  14. C语言libxml用法,c语言libxml2库的安装和使用.....
  15. 华为路由TC7102实现一根网线分离同时支持路由器无线网络使用和电信IPTV机顶盒播放的方法步骤
  16. 记录-链表头插尾插区别
  17. 蓝牙耳机选什么好?5款主打高性价比的蓝牙耳机推荐
  18. javascript之内置函数
  19. oracle 占用大量内存不释放的一种解决方案
  20. /storage/sdcard0, /sdcard, /mnt/sdcard ,/storage/emulated/legacy 的区别

热门文章

  1. 前端 JS 调起打印机打印页面
  2. jenkins新版本+gitlab配置自动化部署报错Hook executed successfully but returned HTTP 403,没有CSRF选项
  3. 程序员最爱 Mac、JS 是最热门技术
  4. spring超全面详解
  5. js中截取字符串前几位的两种方法slice()substring()
  6. 井字棋游戏 c语言实现,井字棋小游戏(C语言)
  7. vue2 + vue-video-player 视频播放器
  8. SEO基础:什么是结构化数据?
  9. [计划]大二下学习计划
  10. 第7章--用户输入和while循环