JavaScript連接組件實(shí)現(xiàn)打印功能
js連接抖音打印組件實(shí)現(xiàn)打印小票
安裝抖音打印組件

抖音打印組件文檔:
https://bytedance.larkoffice.com/docs/doccn2vbOOdd3KWrCd6Z93nIlvg
跟著文檔案例一步步配基本上沒(méi)問(wèn)題,
打印的時(shí)候需要設(shè)置下打印機(jī)名稱(chēng)
示例代碼
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);
}
/**
* 獲取打印機(jī)列表
*/
doGetPrinters() {
var request = {
requestID: this.getUUID(),
version: "1.0",
cmd: "getPrinters"
};
this.socket.send(JSON.stringify(request));
}
/**
* 獲取打印機(jī)配置
*/
doPrinterConfig() {
var request = {
requestID: this.getUUID(),
version: "1.0",
cmd: "printerConfig"
};
this.socket.send(JSON.stringify(request));
}
/**
* 設(shè)置打印機(jī)
* @param {*} data
*/
doSetPrinterConfig(data) {
var request = {
requestID: this.getUUID(),
version: "1.0",
cmd: "setPrinterConfig",
printer: data
};
this.socket.send(JSON.stringify(request));
}
/**
* 通過(guò)taskID查詢(xún)打印狀態(tài)
*/
doGetTaskStatus() {
var request = {
requestID: "12345678901234567890",
version: "1.0",
cmd: "getTaskStatus",
taskID: ["1", "2"]
};
this.socket.send(JSON.stringify(request));
}
// 通過(guò)documentId查詢(xún)打印狀態(tài)
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服務(wù)端"
// }
]
}
]
}
}
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("");
}
}
到此這篇關(guān)于JavaScript連接組件實(shí)現(xiàn)打印功能的文章就介紹到這了,更多相關(guān)JavaScript打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用原生JavaScript實(shí)現(xiàn)放大鏡效果
這篇文章主要為大家詳細(xì)介紹了如何使用原生JavaScript實(shí)現(xiàn)放大鏡效果(可自由大小適配),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-03-03
詳解Bootstrap創(chuàng)建表單的三種格式(一)
在本章中,我們將學(xué)習(xí)如何使用 Bootstrap 創(chuàng)建表單。Bootstrap 通過(guò)一些簡(jiǎn)單的 HTML 標(biāo)簽和擴(kuò)展的類(lèi)即可創(chuàng)建出不同樣式的表單,對(duì)bootstrap 表單相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01
純JS實(shí)現(xiàn)監(jiān)控本地文件變化
你是否曾夢(mèng)想擁有一個(gè)能夠?qū)崟r(shí)監(jiān)控本地文件變化的網(wǎng)頁(yè)應(yīng)用,現(xiàn)在,這個(gè)夢(mèng)想即將成為現(xiàn)實(shí),本文將通過(guò)純JS實(shí)現(xiàn)這一功能,感興趣的小伙伴可以了解下2025-04-04
JS中強(qiáng)制類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)
JavaScript中有幾種強(qiáng)制類(lèi)型轉(zhuǎn)換的方法,可以將一個(gè)數(shù)據(jù)類(lèi)型轉(zhuǎn)換為另一個(gè)數(shù)據(jù)類(lèi)型,具有一定的參考價(jià)值,感興趣的可以了解一下2023-05-05
收集的比較全的automation服務(wù)器不能創(chuàng)建對(duì)象 異常原因和解決方法
對(duì)于出現(xiàn)automation服務(wù)器不能創(chuàng)建對(duì)象的問(wèn)題,下面有幾種解決方法大家可以試試。2008-10-10
基于javascript html5實(shí)現(xiàn)3D翻書(shū)特效
這篇文章主要介紹了基于javascript html5實(shí)現(xiàn)翻書(shū)特效的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03
JavaScript Uploadify文件上傳實(shí)例
這篇文章主要為大家詳細(xì)介紹了Uploadify文件上傳小實(shí)例,一個(gè)簡(jiǎn)單的jsp上傳小功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02

