xGprinterPlus

来自于:开发者立即使用

connectDevices connectBle connectUsb disConnect printTest getPrinterStatus getConnectState setPrinterCommandType printReceipt printLabel connectBleByMacAddress

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

xGprinterPlus装了佳博热敏打印机官方2.2.1版SDK,可通过蓝牙、usb、网口连接打印机,同时支持ESC和TSC打印2中模式打印。

固件要求

Android:4.0及以上

模块接口

connectDevices

连接多设备

connectDevices(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var demo = api.require('xGprinterPlus');
  2. demo.connectDevices(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.5及更高版本

connectBle

蓝牙连接(仅单设备时使用)

connectBle(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var demo = api.require('xGprinterPlus');
  2. demo.connectBle(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.5及更高版本

connectUsb

USB连接(仅单设备时使用)

connectUsb(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var demo = api.require('xGprinterPlus');
  2. demo.connectUsb(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.5及更高版本

disConnect

断开连接(仅单设备时使用)

disConnect(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var demo = api.require('xGprinterPlus');
  2. demo.disConnect(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.5及更高版本

printTest

打印测试页

printTest({params},callback(ret, err))

params

xh:

  • 类型:数字型
  • 描述:(可选项)指定打印机0-3。
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var demo = api.require('xGprinterPlus');
  2. demo.printTest(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.5及更高版本

getPrinterStatus

查询打印机状态

getPrinterStatus({params},callback(ret, err))

params

xh:

  • 类型:数字型
  • 描述:(可选项)指定打印机0-3。
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. message : "打印机正常" // 打印机状态描述
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var obj = api.require('xGprinterPlus');
  2. obj.getPrinterStatus(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.5及更高版本

getConnectState

查询打印机连接状态

getConnectState()

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. state : [false,false,false,false] // 0-3个打印机连接状态
  4. }

示例代码

  1. var obj = api.require('xGprinterPlus');
  2. var ret = obj.getConnectState();
  3. alert(JSON.stringify(ret));

可用性

Android系统

可提供的1.0.5及更高版本

setPrinterCommandType

切换打印模式

setPrinterCommandType({params},callback(ret, err))

params

xh:

  • 类型:数字型
  • 描述:(可选项)指定打印机0-3。
  • 默认值:0

commandType:

  • 类型:数字型
  • 描述:(必输项)0 : 面单模式 1 :票据模式 2 :标签模式。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var obj = api.require('xGprinterPlus');
  2. obj.setPrinterCommandType(function(ret, err) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android系统

可提供的1.0.5及更高版本

printReceipt

打印票据(ESC模式打印,确保打印机处于票据模式)

printReceipt({params}, callback(ret, err))

params

xh:

  • 类型:数字型
  • 描述:(可选项)指定打印机0-3。
  • 默认值:0

rows:

  • 类型:数组
  • 描述:(必输项)打印数据。
  1. [{
  2. lineType: 'lines',//打印空行,要传行数
  3. data : 0 //要打印的空行行数
  4. },{
  5. lineType: 'style', //设置样式
  6. data : [0,0,0,0,0] //字体A/B:(0:A|1:B);是否加粗:(0:关闭|1:开启);倍高:(0:关闭|1:开启);倍宽:(0:关闭|1:开启);下划线:(0:关闭|1:开启)
  7. },{
  8. lineType: 'align', //设置字体位置
  9. data : 'center', //left|center|right
  10. },{
  11. lineType: 'text', //设置打印内容
  12. data : '打印文本'
  13. },{
  14. lineType: 'lineFeed' //设置空行,不需要设置行数
  15. },{
  16. lineType: 'image', //设置打印图片
  17. data : 'widget://image/huibo_logo.png' //支持 fs:// widget:// 路径
  18. },{
  19. lineType: 'barcodePosition', //设置条码可识别字符位置
  20. data: 'below' //设置打印位置 above|aboveAndBelow|below|noPrint
  21. },{
  22. lineType: 'barcodeHeight', //设置条码高度
  23. data : 60 //条码高度
  24. },{
  25. lineType: 'barcodeWidth', //设置条码单元宽度
  26. data : 1 //宽度为1点
  27. },{
  28. lineType: 'code128', //打印Code128码
  29. data : '123456789'
  30. },{
  31. lineType: 'levelForQRCode', //设置纠错等级
  32. data : 31
  33. },{
  34. lineType: 'moduleForQRCode', //设置qrcode模块大小
  35. data : 3
  36. },{
  37. lineType: 'qrcode', //设置qrcode内容
  38. data : 'qrcode内容'
  39. },{
  40. lineType: 'openBox' //开钱箱
  41. },{
  42. lineType: 'ImmediatelyOpenBox' //立即开钱箱
  43. },{
  44. lineType: 'cutPaper' //开启切刀
  45. }]

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg:""
  3. }

示例代码

  1. var obj = api.require('xGprinterPlus');
  2. demo.printReceipt({
  3. rows : [{
  4. lineType : 'lines',
  5. data : 3
  6. },{//设置打印居中
  7. lineType : 'align',
  8. data : 'center'
  9. },{//设置为倍高倍宽
  10. lineType : 'style',
  11. data : [0,0,1,1,0]
  12. },{// 打印文字
  13. lineType : 'text',
  14. data : 'Sample\n'
  15. },{
  16. lineType : 'lineFeed'
  17. },{//取消倍高倍宽
  18. lineType : 'style',
  19. data : [0,0,0,0,0]
  20. },{//设置打印左对齐
  21. lineType : 'align',
  22. data : 'left'
  23. },{// 打印文字
  24. lineType : 'text',
  25. data : 'Print text\n'
  26. },{// 打印文字
  27. lineType : 'text',
  28. data : 'Welcome to use printer!\n'
  29. },{
  30. lineType : 'lineFeed'
  31. },{// 打印文字
  32. lineType : 'text',
  33. data : 'Print bitmap!\n'
  34. },{
  35. lineType : 'image',
  36. data : 'widget://image/huibo_logo.png'
  37. },{// 打印文字
  38. lineType : 'text',
  39. data : 'Print code128\n'
  40. },{//设置条码可识别字符位置在条码下方
  41. lineType : 'barcodePosition',
  42. data : 'below'
  43. },{//设置条码高度为60点
  44. lineType : 'barcodeHeight',
  45. data : 60
  46. },{//设置条码单元宽度为1点
  47. lineType : 'barcodeWidth',
  48. data : 1
  49. },{//打印Code128码
  50. lineType : 'code128',
  51. data : '123456789'
  52. },{
  53. lineType : 'lineFeed'
  54. },{// 打印文字
  55. lineType : 'text',
  56. data : 'Print QRcode\n'
  57. },{//设置纠错等级
  58. lineType : 'levelForQRCode',
  59. data : 31
  60. },{//设置qrcode模块大小
  61. lineType : 'levelForQRCode',
  62. data : 3
  63. },{//设置qrcode内容
  64. lineType : 'qrcode',
  65. data : "www.printer.com.cn"
  66. },{
  67. lineType : 'lineFeed'
  68. },{//设置打印居中
  69. lineType : 'align',
  70. data : 'center'
  71. },{// 打印文字
  72. lineType : 'text',
  73. data : 'Completed!\r\n'
  74. },{//开钱箱
  75. lineType : 'openBox'
  76. }]
  77. },function(ret, err){
  78. alert(JSON.stringify(ret)+" "+ JSON.stringify(err));
  79. });

可用性

Android系统

可提供的1.0.5及更高版本

printLabel

打印标签(TSC模式打印,确保打印机处于标签模式)

printLabel({params}, callback(ret, err))

params

xh:

  • 类型:数字型
  • 描述:(可选项)指定打印机0-3。
  • 默认值:0

rows:

  • 类型:数组
  • 描述:(必输项)打印数据。
  1. [{
  2. lineType: 'size',//设置标签尺寸,按照实际尺寸设置
  3. width : 80,
  4. height : 72
  5. },{
  6. lineType: 'gap', //设置标签间隙,按照实际尺寸设置
  7. data : 0 //如果为无间隙纸则设置为0
  8. },{
  9. lineType: 'direction', //设置打印方向
  10. direction : 'backward', //backward|forward
  11. mirror : 'normal' //normal|mirror
  12. },{
  13. lineType: 'reference', /设置原点坐标
  14. x : 0 ,
  15. y : 0
  16. },{
  17. lineType: 'tear', //撕纸模式开启
  18. data : true
  19. },{
  20. lineType: 'cls' // 清除打印缓冲区
  21. },{
  22. lineType: 'text', //绘制简体中文
  23. x : 20 ,
  24. y : 20,
  25. rotation : 0, // 0|90|180|270
  26. xscal : 1, //1~10
  27. yscal : 1, //1~10
  28. data : '要打印的文字'
  29. },{
  30. lineType: 'image', //绘制图片
  31. x : 20,
  32. y : 50,
  33. data : 'widget://image/huibo_logo.png' //支持fs:// widget://
  34. },{
  35. lineType: 'qrcode', 绘制qrcode
  36. x : 250 ,
  37. y : 80 ,
  38. level : 'L', //L|M|H|Q
  39. cellwith : 5,
  40. rotation : 0, // 0|90|180|270
  41. data : '要打印的二维码内容'
  42. },{
  43. lineType: 'code128', //绘制一维条码
  44. x : 250 ,
  45. y : 80 ,
  46. height : 100,
  47. rotation : 0, // 0|90|180|270
  48. data : '123456789'
  49. },{
  50. lineType: 'bar', //画线
  51. x : 0 ,
  52. y : 0 ,
  53. width : 0
  54. height : 0
  55. }]

openBox:

  • 类型:布尔型
  • 描述:(可选项)是否打开钱箱。
  • 默认值:true

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg:""
  3. }

示例代码

  1. var obj = api.require('xGprinterPlus');
  2. demo.printLabel({
  3. rows : [{
  4. lineType : 'size',
  5. width : 80,
  6. height : 72
  7. },{
  8. lineType : 'gap',
  9. data : 0
  10. },{
  11. lineType : 'cls'
  12. },{
  13. lineType : 'gap',
  14. data : 0
  15. },{// 左边框
  16. lineType : 'bar',
  17. x : 16,
  18. y : 0,
  19. width : 4,
  20. height : 556
  21. },{// 上边框
  22. lineType : 'bar',
  23. x : 16,
  24. y : 0,
  25. width : 608,
  26. height : 8
  27. },{// 右边框
  28. lineType : 'bar',
  29. x : 624,
  30. y : 0,
  31. width : 4,
  32. height : 556
  33. },{// 下边框
  34. lineType : 'bar',
  35. x : 16,
  36. y : 556,
  37. width : 608,
  38. height : 4
  39. },{// 图片单元格竖线
  40. lineType : 'bar',
  41. x : 16 + 130,
  42. y : 0,
  43. width : 2,
  44. height : 106
  45. },{//绘制图片
  46. lineType : 'image',
  47. x : 16 + 8,
  48. y : 8,
  49. data : 'widget://image/huibo_logo.png'
  50. },{//绘制文本
  51. lineType : 'text',
  52. x : 16 + 8,
  53. y : 8,
  54. rotation : 0,
  55. xscal : 1,
  56. yscal : 1,
  57. data : '青岛汇博通商贸有限公司'
  58. },{// 图片单元格横线
  59. lineType : 'bar',
  60. x : 16 + 130,
  61. y : 56,
  62. width : 640 - 130 - 16 - 16,
  63. height : 2
  64. },{// 二维码旁边竖线
  65. lineType : 'bar',
  66. x : 16 + 320,
  67. y : 106,
  68. width : 2,
  69. height : 556 - 106
  70. },{// 横线
  71. lineType : 'bar',
  72. x : 16 ,
  73. y : 106,
  74. width : 608,
  75. height : 2
  76. },{//绘制文本
  77. lineType : 'text',
  78. x : 16 + 4,
  79. y : 106 + 2,
  80. rotation : 0,
  81. xscal : 1,
  82. yscal : 2,
  83. data : '捆包号:R103571234'
  84. },{//绘制文本
  85. lineType : 'text',
  86. x : 16 + 320 + 2,
  87. y : 106 + 2,
  88. rotation : 0,
  89. xscal : 1,
  90. yscal : 2,
  91. data : '钢厂资源号:ML123456789'
  92. },{// 横线
  93. lineType : 'bar',
  94. x : 16 + 320 + 2 ,
  95. y : 156,
  96. width : 608,
  97. height : 2
  98. },{//绘制code128
  99. lineType : 'code128',
  100. x : 16 + 16,
  101. y : 156 + 2,
  102. height : 48,
  103. rotation : 0,
  104. data : '1234567890'
  105. },{//绘制文本
  106. lineType : 'text',
  107. x : 16 + 320 + 2,
  108. y : 156 + 2,
  109. rotation : 0,
  110. xscal : 1,
  111. yscal : 2,
  112. data : '母卷号:P123456789'
  113. },{// 横线
  114. lineType : 'bar',
  115. x : 16 ,
  116. y : 206,
  117. width : 608,
  118. height : 2
  119. },{//绘制文本
  120. lineType : 'text',
  121. x : 16 + 4,
  122. y : 206 + 2,
  123. rotation : 0,
  124. xscal : 1,
  125. yscal : 2,
  126. data : '品名:冷轧卷'
  127. },{//绘制文本
  128. lineType : 'text',
  129. x : 16 + 320 + 2,
  130. y : 206 + 2,
  131. rotation : 0,
  132. xscal : 1,
  133. yscal : 2,
  134. data : '牌号:DC06'
  135. },{// 横线
  136. lineType : 'bar',
  137. x : 16 ,
  138. y : 256,
  139. width : 608,
  140. height : 2
  141. },{//绘制文本
  142. lineType : 'text',
  143. x : 16 + 4,
  144. y : 256 + 2,
  145. rotation : 0,
  146. xscal : 1,
  147. yscal : 2,
  148. data : '规格:1.2*1250*C'
  149. },{//绘制文本
  150. lineType : 'text',
  151. x : 16 + 320 + 2,
  152. y : 256 + 2,
  153. rotation : 0,
  154. xscal : 1,
  155. yscal : 2,
  156. data : '净重:10.5t'
  157. },{// 横线
  158. lineType : 'bar',
  159. x : 16 ,
  160. y : 306,
  161. width : 608,
  162. height : 2
  163. },{//绘制文本
  164. lineType : 'text',
  165. x : 16 + 4,
  166. y : 306 + 2,
  167. rotation : 0,
  168. xscal : 1,
  169. yscal : 2,
  170. data : '毛重:10.8t'
  171. },{//绘制文本
  172. lineType : 'text',
  173. x : 16 + 320 + 2,
  174. y : 306 + 2,
  175. rotation : 0,
  176. xscal : 1,
  177. yscal : 2,
  178. data : '件数:1'
  179. },{// 横线
  180. lineType : 'bar',
  181. x : 16 ,
  182. y : 356,
  183. width : 608,
  184. height : 2
  185. },{//绘制文本
  186. lineType : 'text',
  187. x : 16 + 4,
  188. y : 356 + 2,
  189. rotation : 0,
  190. xscal : 1,
  191. yscal : 2,
  192. data : '库区:原料区'
  193. },{//绘制qrcode
  194. lineType : 'qrcode',
  195. x : 16 + 320 + 2 + 100,
  196. y : 356 + 2 + 25,
  197. level : 'L',
  198. cellwith : 5,
  199. rotation : 0,
  200. data : '捆包号|钢厂资源号|母卷号|品名|牌号|规格|净重|毛重'
  201. },{// 横线
  202. lineType : 'bar',
  203. x : 16 ,
  204. y : 406,
  205. width : 320,
  206. height : 2
  207. },{//绘制文本
  208. lineType : 'text',
  209. x : 16 + 4,
  210. y : 406 + 2,
  211. rotation : 0,
  212. xscal : 1,
  213. yscal : 2,
  214. data : '库位:YC-02'
  215. },{// 横线
  216. lineType : 'bar',
  217. x : 16 ,
  218. y : 456,
  219. width : 320,
  220. height : 2
  221. },{//绘制文本
  222. lineType : 'text',
  223. x : 16 + 4,
  224. y : 456 + 2,
  225. rotation : 0,
  226. xscal : 1,
  227. yscal : 2,
  228. data : '收货单位:英大'
  229. },{// 横线
  230. lineType : 'bar',
  231. x : 16 ,
  232. y : 506,
  233. width : 320,
  234. height : 2
  235. },{//绘制文本
  236. lineType : 'text',
  237. x : 16 + 4,
  238. y : 506 + 2,
  239. rotation : 0,
  240. xscal : 1,
  241. yscal : 2,
  242. data : '日期:2016.06.12'
  243. }]
  244. },function(ret, err){
  245. alert(JSON.stringify(ret)+" "+ JSON.stringify(err));
  246. });

可用性

Android系统

可提供的1.0.5及更高版本

connectBleByMacAddress

根据mac地址连接蓝牙设备(仅单设备时使用)

connectBleByMacAddress(callback(ret, err))

params

macAddress:

  • 类型:字符串型
  • 描述:(必填项)指定需要连接的蓝牙设备的mac地址。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: ''
  3. }

示例代码

  1. var demo = api.require('xGprinterPlus');
  2. demo.connectBleByMacAddress({
  3. macAddress : ''
  4. },function(ret, err) {
  5. alert(JSON.stringify(ret));
  6. });

可用性

Android系统

可提供的1.0.5及更高版本