|
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
|