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

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

相关推荐

  1. js实现打印

    2024-04-22 23:46:05       28 阅读
  2. 原生js 实现table 打印

    2024-04-22 23:46:05       28 阅读
  3. Python连接打印机实现自动化打印的利器

    2024-04-22 23:46:05       49 阅读
  4. uniapp 打开小程序

    2024-04-22 23:46:05       35 阅读
  5. 使用pdf.js实现pdf的预览与打印

    2024-04-22 23:46:05       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 23:46:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 23:46:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 23:46:05       82 阅读
  4. Python语言-面向对象

    2024-04-22 23:46:05       91 阅读

热门阅读

  1. GRU之我见(含案例讲解)

    2024-04-22 23:46:05       37 阅读
  2. pytest前后值和@pytest.fixtrue的使用

    2024-04-22 23:46:05       34 阅读
  3. Hadoop HDFS:海量数据的存储解决方案

    2024-04-22 23:46:05       39 阅读
  4. CSS字体样式

    2024-04-22 23:46:05       32 阅读
  5. aws挂载s3

    2024-04-22 23:46:05       36 阅读
  6. TCP练习

    2024-04-22 23:46:05       36 阅读
  7. 工作与生活的平衡术:顶尖专家的十大建议

    2024-04-22 23:46:05       39 阅读
  8. 处理复杂人际关系的策略

    2024-04-22 23:46:05       43 阅读