敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20250529.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.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));
});