javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JavaScript打印

JavaScript连接组件实现打印功能

作者:小兔快跑zZ

这篇文章主要为大家详细介绍了JavaScript如何连接连接抖音打印组件实现打印小票功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下

js连接抖音打印组件实现打印小票

安装抖音打印组件

抖音打印组件文档:

https://bytedance.larkoffice.com/docs/doccn2vbOOdd3KWrCd6Z93nIlvg

跟着文档案例一步步配基本上没问题,

打印的时候需要设置下打印机名称

示例代码

export class DouyinPrint {
  constructor(socketUrl = "ws://127.0.0.1:13888") {
    this.url = socketUrl;
    this.doConnect();
    this.isReady = false;
  }
  doConnect() {
    this.socket = new WebSocket(this.url);
  }
  /**
   * 获取打印机列表
   */
  doGetPrinters() {
    var request = {
      requestID: this.getUUID(),
      version: "1.0",
      cmd: "getPrinters"
    };

    this.socket.send(JSON.stringify(request));
  }
  /**
   * 获取打印机配置
   */
  doPrinterConfig() {
    var request = {
      requestID: this.getUUID(),
      version: "1.0",
      cmd: "printerConfig"
    };

    this.socket.send(JSON.stringify(request));
  }
  /**
   * 设置打印机
   * @param {*} data 
   */
  doSetPrinterConfig(data) {
    var request = {
      requestID: this.getUUID(),
      version: "1.0",
      cmd: "setPrinterConfig",
      printer: data
    };

    this.socket.send(JSON.stringify(request));
  }
  /**
   * 通过taskID查询打印状态
   */
  doGetTaskStatus() {
    var request = {
      requestID: "12345678901234567890",
      version: "1.0",
      cmd: "getTaskStatus",
      taskID: ["1", "2"]
    };
    this.socket.send(JSON.stringify(request));
  }
  // 通过documentId查询打印状态
  doGetDocumentStatus() {
    var request = {
      requestID: "12345678901234567890",
      version: "1.0",
      cmd: "getDocumentStatus",
      documentIDs: ["9890000076011"]
    };
    this.socket.send(JSON.stringify(request));
  }
  /**
   * 打印
   * @param {*} printer_name 
   * @param {*} data 
   * @param {*} order_id 
   */
  doPrint(printer_name, data,order_id) {
    let request ={
        "cmd": "print",
        "requestID": data.pack_id,
        "version": "1.0",
        "task": {
            "taskID": `${order_id}_${this.getUUID()}`,
            "preview": false,
            "printer": printer_name,
            "documents": [
                {
                    "documentID":data.warehouse_danhao,
                    "contents": [
                        {
                            "templateURL": data.templateURL,
                            "params": data.params,
                            "signature": data.signature,
                            "encryptedData": data.encryptedData,
                            "addData": data.addData
                        },
                        // {
                        //     "data": {},
                        //     "templateURL": "自定义模板URL,保存在ISV服务端"
                        // }
                    ]
                }
            ]
        }
    }

    this.socket.send(JSON.stringify(request));
  }
  getUUID(len, radix) {
    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(
      ""
    );
    var uuid = [],
      i;
    radix = radix || chars.length;
    if (len) {
      for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
    } else {
      var r;
      uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-";
      uuid[14] = "4";
      for (i = 0; i < 36; i++) {
        if (!uuid[i]) {
          r = 0 | (Math.random() * 16);
          uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];
        }
      }
    }
    return uuid.join("");
  }
}

到此这篇关于JavaScript连接组件实现打印功能的文章就介绍到这了,更多相关JavaScript打印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文