敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20241118.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
♦ SDK 文档 部分接口的 js API 映射,详细用法请参考 SDK 文档的同名函数;
连接与设置
jsBridge.prt.getUsbPrinters(function(succ, data) { //获取成功时 data 为字符串数组类型(即所有联机的 USB 打印机路径) alert((succ ? "成功\n" : "失败\n") + JSON.stringify(data)); });
jsBridge.prt.open({ //字符串类型,USB 打印机路径(请调用 getUsbPrinters 接口获取) usb: "/dev/bus/usb/001/008" }, function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
jsBridge.prt.close(function(succ, data) { alert("已关闭"); });
jsBridge.prt.initPrinter(function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
jsBridge.prt.setFont({ //数字类型,字符类型 characterType: 0, //数字类型,倍宽 width : 1, //数字类型,倍高 height : 1, //数字类型,加粗 bold : 0, //数字类型,下划线 underline: 0 }, function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
jsBridge.prt.setPrinter({ //数字类型,命令(如 13 为 ALIGN 对其) command: 13, //数字类型,值(如 1 为 ALIGN_CENTER 居中) value : 1 }, function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); }); /* 命令及值参考: INIT_PRINTER = 0; WAKE_PRINTER = 1; PRINT_AND_RETURN_STANDARD = 2; PRINT_AND_NEWLINE = 3; PRINT_AND_ENTER = 4; MOVE_NEXT_TAB_POSITION = 5; DEF_LINE_SPACING = 6; PRINT_AND_WAKE_PAPER_BY_LNCH = PRINT_AND_WAKE_PAPER_BY_LINE = CLOCKWISE_ROTATE_90 = 4; ALIGN = 13; ALIGN_LEFT = 0; ALIGN_CENTER = 1; ALIGN_RIGHT = 2; LINE_HEIGHT = 10; CHARACTER_RIGHT_MARGIN = 11; UNDERLINE = 15; UNDERLINE_OFF = 16; UNDERLINE_ONE_DOTE = 17; UNDERLINE_TWO_DOTE = 18; FONT_MODE = 16; FONT_SIZE = 17; */
jsBridge.prt.setLeftMargin({ //数字类型 leftMargin: 2 }, function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
jsBridge.prt.cutPaper({ //数字类型 cutterType: 48, //数字类型 length : 0 }, function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
jsBridge.prt.ringBuzzer({ //数字类型,鸣响秒数 time: 1 }, function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
jsBridge.prt.blackLableFind(function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
jsBridge.prt.resetFeedDistance(function(succ, data) { alert(succ ? "成功" : "失败\n" + JSON.stringify(data)); });
打印
jsBridge.prt.sendBytesData({ //字符串类型,16进制 hexBytes: "EB129F00" }, function(succ, data) { alert(succ + "\n" + JSON.stringify(data)); });
jsBridge.prt.printText({ //字符串类型 text: "Hello world" }, function(succ, data) { alert(succ + "\n" + JSON.stringify(data)); });
jsBridge.prt.printImage({ //字符串类型,图片的 Base64 编码 imageAsBase64: "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAATJJREFUOE+t0z8ormEYx/HPm9FEnVCGUwxGMUii42w2BgYGTAZSZMcqnZPNmTCYLJRREYuymJQynOEMx+SsJrrqvuvu4c3byV3P8Pye6/rev+f6U/P2dGIK02jCBP6hN4VelCm1Sv4PrGAIdymxDPmFZyxnsQS8YB7777gqpUieQ1+IGXCIYxx9kJw/L2ILzQHowkMBi6CvWMcObgvoBn4nl+H4ewBOcIXtSmAASpffcJ60UXyJWgQgSO14LABjWMIN4tY4rdjFExaS9pIB1W40WAqfB6j+QiMO2vC3XhEzIAq5mV460I/T9L6G4XptzIABXKf5mEQP7nMB0d3IIMVuDOIsdSDyAzaOmf8Z5RjjvTx49ZYpFuqguLEFs/iZntX3lilrYTl2Y6TSisuwjD+l/gq5NUDlPW/EOQAAAABJRU5ErkJggg==", //数字类型,对其方式 0 NONE, 1 START, 2 CENTER, 3 END align : 0, //数字类型,当 align 为 0 时左边的距离 left : 0, //是否压缩 isCompressed : false }, function(succ, data) { alert(succ + "\n" + JSON.stringify(data)); });
jsBridge.prt.printTable({ //列 column: { //列名(用 splitter 参数指定的分割符分割) name : "品名;数量;单价;金额", //列名分隔符 splitter: ";", //列宽 width: [14, 6, 6, 6] }, //行 - 字符串数组(用 splitter 参数指定的分隔符分割) rows: [ "保鲜袋;1;10.00;10.00", "铁丝挂钩;2;5.00;10.00", "雨伞;3;15.00;45.00" ] }, function(succ, data) { alert(succ + "\n" + JSON.stringify(data)); });