var TscPrintUtil = { /** * 通用参数 */ config: { //打印机名 dyjmc: "TSC TTP-244 Pro", //纸张宽度mm zzkd: "86", //纸张高度mm zzgd: "21", //打印速度1-10 sd: "5", //打印浓度,1-15 dynd: "15", //感应类别,設定使用感應器類別0 表示使用垂直間距感測器(gap sensor),1 表示使用黑標感測器(black mark sensor) gylb: "0", //垂直间距.只有gylb为0的时候起作用,当gylb设置为1的时候这里必须设置为0,否则打印机报错 czjj: "2", //設定列印方向及鏡射功能 DIRECTION: "DIRECTION 1,0", //定義標籤紙上的相對於原點的參考點座標 注意事項:200 DPI: 1 mm = 8 dots 300 DPI: 1 mm = 12 dots REFERENCE: "REFERENCE 16,16", //相当于8个dot为1mm dots8: 8, //相当于12个dot为1mm dots12: 12 }, /** * 打印溯源条码 * @param data */ printTrouceCode: function (data) { if (!data) { return; } alert("开始创建ActiveXObject对象"); var TSCObj; TSCObj = new ActiveXObject("TSCActiveX.TSCLIB"); alert("创建ActiveXObject对象成功了"); TSCObj.ActiveXopenport(this.config.dyjmc); //预先设置工作 TSCObj.ActiveXclearbuffer(); TSCObj.ActiveXsetup(this.config.zzkd, this.config.zzgd, this.config.sd, this.config.dynd, this.config.gylb, this.config.czjj, "0"); TSCObj.ActiveXsendcommand(this.config.DIRECTION); TSCObj.ActiveXsendcommand(this.config.REFERENCE); for (var i = 0; i < data.length; i++) { var item = data[i]; //填充左边 if (item) { //二维码 TSCObj.ActiveXsendcommand("QRCODE " + this.config.dots8 * 3 + ",0,H,2,A,0,M2,S7,\"" + item.qrCodeContent + "\""); //left机构 if(item.customerName){ let name = "生产者:"+ item.customerName; TSCObj.ActiveXwindowsfont(this.config.dots8 * 19, 0, 24, 0, 2, 0, "宋体", name); } //名称 if (item.varietyName) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 19, this.config.dots8 * 7, 16, 0, 2, 0, "宋体", item.varietyName); } //采收时间 if (item.caishouTime) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 19, this.config.dots8 * 10, 16, 0, 2, 0, "宋体", item.caishouTime); } } //打印 TSCObj.ActiveXprintlabel("1", "1"); TSCObj.ActiveXclearbuffer(); } //关闭 TSCObj.ActiveXcloseport(); }, /** * 打印固定资产条码 * @param data */ printGdzc: function (data) { if (!data) { return; } var TSCObj; TSCObj = new ActiveXObject("TSCActiveX.TSCLIB"); TSCObj.ActiveXopenport(this.config.dyjmc); //预先设置工作 TSCObj.ActiveXclearbuffer(); TSCObj.ActiveXsetup(this.config.zzkd, this.config.zzgd, this.config.sd, this.config.dynd, this.config.gylb, this.config.czjj, "0"); TSCObj.ActiveXsendcommand(this.config.DIRECTION); TSCObj.ActiveXsendcommand(this.config.REFERENCE); var rows = this.transformArrayData(data); for (var i = 0; i < rows.length; i++) { var item = rows[i]; //填充左边 if (item.left) { //二维码 TSCObj.ActiveXsendcommand("QRCODE " + this.config.dots8 * 3 + ",0,H,2,A,0,M2,S7,\"" + item.left.ewm + "\""); //机构 if (item.left.bt) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 19, 0, 24, 0, 2, 0, "宋体", item.left.bt.substring(0, 6)); } //编号 if (item.left.bh) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 19, this.config.dots8 * 4, 16, 0, 2, 0, "宋体", item.left.bh); } //名称 if (item.left.mc) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 19, this.config.dots8 * 7, 16, 0, 2, 0, "宋体", item.left.mc); } //报废日期 if (item.left.bfsj) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 19, this.config.dots8 * 10, 16, 0, 2, 0, "宋体", item.left.bfsj); } } //填充右边 if (item.right && typeof (item.right) != "undefined") { TSCObj.ActiveXsendcommand("QRCODE " + this.config.dots8 * 45 + ",0,H,2,A,0,M2,\"" + item.right.ewm + "\""); //机构 if (item.right.bt) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 61, 0, 24, 0, 2, 0, "宋体", item.right.bt.substring(0, 6)); } //编号 if (item.right.bh) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 61, this.config.dots8 * 4, 16, 0, 2, 0, "宋体", item.right.bh); } //名称 if (item.right.mc) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 61, this.config.dots8 * 7, 16, 0, 2, 0, "宋体", item.right.mc); } //报废日期 if (item.right.bfsj) { TSCObj.ActiveXwindowsfont(this.config.dots8 * 61, this.config.dots8 * 10, 16, 0, 2, 0, "宋体", item.right.bfsj); } } //打印 TSCObj.ActiveXprintlabel("1", "1"); TSCObj.ActiveXclearbuffer(); } //关闭 TSCObj.ActiveXcloseport(); }, /** * 转换数组 * @param data */ transformArrayData: function (data) { var yu = data.length % 2; var chushu = Math.floor(data.length / 2); var length = chushu + yu; var rows = []; for (var i = 0; i < length; i++) { var obj = {}; obj.left = data[i * 2]; obj.right = data[i * 2 + 1]; rows[i] = obj; } return rows.concat(); }, /** * 双引号转单引号 * @param str * @returns {XML|string|void} */ transformQuotation: function (str) { return str.replace(/\"/g, "'"); } }; export default TscPrintUtil