hicorePrinterFunction.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import { CCPrintingAPI } from '@/utils/CCPrintingAPI.min.vue'
  2. export function GetPrinters() {
  3. let cfgData = {}
  4. const resolveData = {
  5. printer: '',
  6. printers: []
  7. }
  8. cfgData.XAction = 'Printers'
  9. cfgData.XOpenId = process.env.VUE_APP_PRINTER_OPENID
  10. cfgData.XTokens = process.env.VUE_APP_PRINTER_TOKENS
  11. return new Promise((resolve, reject) => {
  12. CCPrintingAPI.Excute(
  13. cfgData,
  14. function(XTimeout) {},
  15. function(XFail) {
  16. reject('API可能未安装或未启动')
  17. },
  18. function(XSuccess) {
  19. var apiResult = JSON.parse(XSuccess.trim())
  20. if (apiResult.Status * 1 === 1) {
  21. // 获取到打印机列表
  22. if (apiResult.Message.length > 1) {
  23. for (var i = 1; i < apiResult.Message.length; i++) {
  24. resolveData.printers.push({
  25. label: apiResult.Message[i],
  26. value: apiResult.Message[i]
  27. })
  28. }
  29. // 设置上次使用的打印机
  30. resolveData.printer = resolveData.printers[0]
  31. }
  32. }
  33. resolve(resolveData)
  34. }
  35. )
  36. })
  37. }
  38. export function Print({ printer, Preview, TemplateURL, TemplateName, PrintData }) {
  39. var cfgData = {}
  40. cfgData.XAction = 'Print'
  41. cfgData.XOpenId = process.env.VUE_APP_PRINTER_OPENID
  42. cfgData.XTokens = process.env.VUE_APP_PRINTER_TOKENS
  43. /* 指定打印机*/
  44. cfgData.PrinterName = printer
  45. if (Preview) cfgData.Preview = Preview
  46. /* 模板方式,0-客户端模板,1-远程模板,
  47. 2-如果本地模板存在,使用本地,不存在使用远程模板,3-不使用模板*/
  48. cfgData.TemplateMode = '2'
  49. /* 远程模板URL或本地模板的文件夹*/
  50. // cfgData.TemplateURL = "http://img.51321.cn/web/chicore/VPrinting/API";
  51. // cfgData.TemplateURL = 'http://113.105.183.190:9167/bucket159'
  52. cfgData.TemplateURL = TemplateURL
  53. // cfgData.TemplateURL = "D:\\\\";
  54. /* 模板文件名*/
  55. // cfgData.TemplateName = "183601-70X40.Lblx";
  56. // cfgData.TemplateName = '2024-04-10-16-10-49-1712736650022_Label3.Lblx'
  57. cfgData.TemplateName = TemplateName
  58. // cfgData.TemplateName = "Label2.Lblx";
  59. /* 打印数据的类型,0-数组,1-Json数组,元素为JSON对象,字段:值*/
  60. cfgData.PrintDataType = 1
  61. cfgData.PrintData = JSON.stringify(PrintData)
  62. /* 打印 发送给打印机进行打印*/
  63. return new Promise((resolve, reject) => {
  64. CCPrintingAPI.Excute(cfgData,
  65. function(XTimeout) { },
  66. function(XFail) {
  67. reject('API可能未安装或未启动')
  68. },
  69. function(XSuccess) {
  70. var apiResult = JSON.parse(XSuccess.trim())
  71. if (apiResult.Status === '1') {
  72. resolve(apiResult.Message)
  73. // document.getElementById("tipsmessage").innerHTML = apiResult.Message[0] + apiResult.Message[1];
  74. }
  75. }
  76. )
  77. })
  78. }