WebApp快捷打包
X 打印机
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20240326.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

SDK 文档 部分接口的 js API 映射,详细用法请参考 SDK 文档的同名函数;

连接与设置

getUsbPrinters 获取 USB 打印机(路径)

jsBridge.prt.getUsbPrinters(function(succ, data) {
  //获取成功时 data 为字符串数组类型(即所有联机的 USB 打印机路径)
  alert((succ ? "成功\n" : "失败\n") + JSON.stringify(data));
});

open 打开(连接)打印机

jsBridge.prt.open({
  //字符串类型,USB 打印机路径(请调用 getUsbPrinters 接口获取)
  usb: "/dev/bus/usb/001/008"
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

close 关闭(断开)打印机

jsBridge.prt.close(function(succ, data) {
  alert("已关闭");
});

initPrinter 初始化打印机

jsBridge.prt.initPrinter(function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

setFont 设置字体

jsBridge.prt.setFont({
  //数字类型,字符类型
  characterType: 0,
  //数字类型,倍宽
  width    : 1,
  //数字类型,倍高
  height   : 1,
  //数字类型,加粗
  bold     : 0,
  //数字类型,下划线
  underline: 0
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

setPrinter 设置打印机

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;
*/

setLeftMargin 设置距离左边点距数

jsBridge.prt.setLeftMargin({
  //数字类型
  leftMargin: 2
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

cutPaper 切纸

jsBridge.prt.cutPaper({
  //数字类型
  cutterType: 48,
  //数字类型
  length    : 0
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

ringBuzzer 蜂鸣器

jsBridge.prt.ringBuzzer({
  //数字类型,鸣响秒数
  time: 1
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

blackLableFind 黑标定位

jsBridge.prt.blackLableFind(function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

resetFeedDistance 重置走纸距离

jsBridge.prt.resetFeedDistance(function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

打印

sendBytesData 发送字节流数据

jsBridge.prt.sendBytesData({
  //字符串类型,16进制
  hexBytes: "EB129F00"
}, function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

printText 打印文本

jsBridge.prt.printText({
  //字符串类型
  text: "Hello world"
}, function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

printImage 打印黑白图片

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));
});

printTable 打印表格

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));
});