var LODOP = getCLodop(); //初始化 function initPrintSetting(clodoplisence) { try{ var LODOP= getCLodop(); if (LODOP.VERSION) { if (LODOP.CVERSION){ //alert("当前有WEB打印服务C-Lodop可用!\n C-Lodop版本:"+LODOP.CVERSION+"(内含Lodop"+LODOP.VERSION+")"); //如果没有问题打印的信息 //LODOP.SET_LICENSES("","646464550585055535859561289003","688858710010010811411756128900",""); LODOP.SET_LICENSES("",clodoplisence,"",""); //判断当前打印模式 /* if(printerData.seq >= 0){ LODOP.SET_PRINTER_INDEXA(printerData.printName); LODOP.PRINT(); }else if(printerData.seq === -1){ LODOP.PREVIEW(); }else if(printerData.seq === -2){ LODOP.PRINT_DESIGN(); }*/ }else { alert("本机已成功安装了Lodop控件!\n 版本号:"+LODOP.VERSION); } }; }catch(err){ } }; //批量打印标签的方法 function printRollLabel(printRow, printerData){ // 初始化 LODOP 对象 initPrintSetting(printerData.clodoplisence); //初始化打印机 LODOP.NewPage(); LODOP.SET_PRINT_PAGESIZE(0,770,770,""); //打印二维码内容 LODOP.ADD_PRINT_BARCODE(10,23,75,75,"QRCode", printRow.qrtext); LODOP.SET_PRINT_STYLE("FontSize",18); LODOP.ADD_PRINT_TEXT(80,26,300,20,row.qrtext); //判断是否存在 let partType = printRow.partType; if(partType && partType != ''){ LODOP.ADD_PRINT_TEXT(45,150,120,75, partType); LODOP.SET_PRINT_STYLE("FontSize",14); } LODOP.ADD_PRINT_TEXT(100,26,300,20,"SO No:"+printRow.orderNo); LODOP.ADD_PRINT_TEXT(120,26,300,20,"Part No:"+printRow.partNo); LODOP.ADD_PRINT_TEXT(140,26,300,20,"APN:"+printRow.apn); LODOP.ADD_PRINT_TEXT(160,26,300,20,"qty:"+printRow.qty); LODOP.ADD_PRINT_TEXT(180,26,300,20,"Operator:"+printRow.username); LODOP.ADD_PRINT_TEXT(200,26,300,20,"Create Date:"+printRow.createdDate); //判断是否存在排位 let col = printRow.col; if(col){ LODOP.ADD_PRINT_TEXT(220,26,300,20,"排位:"+col); } let rewind = printRow.rewind; if(rewind){ LODOP.ADD_PRINT_TEXT(232,164,123,41,rewind); LODOP.SET_PRINT_STYLEA(0,"FontSize",21); LODOP.SET_PRINT_STYLEA(0,"Bold",1); } //判断当前打印模式 if(printerData.seq >= 0){ LODOP.SET_PRINTER_INDEXA(printerData.printName); LODOP.PRINT(); }else if(printerData.seq === -1){ LODOP.PREVIEW(); }else if(printerData.seq === -2){ LODOP.PRINT_DESIGN(); } } //生成二维码 function generateDataMatrixImage(serialNo, width, height) { const canvas = document.createElement('canvas'); canvas.width = width; canvas.height = height; const ctx = canvas.getContext('2d'); // 白色背景 ctx.fillStyle = 'white'; ctx.fillRect(0, 0, width, height); // 生成DataMatrix码 const codeCanvas = document.createElement('canvas'); try { bwipjs.toCanvas(codeCanvas, { bcid: 'datamatrix', // 条码类型:DataMatrix text: serialNo, // 要编码的文本 scale: 35, // 缩放因子 height: 9, // 条码高度 includetext: false, // 不在条码中包含文本 backgroundcolor: 'ffffff', // 白色背景 barcolor: '000000' // 黑色条码 }); // 将条码绘制到主canvas上方(占用约2/3高度) const codeSize = Math.min(width * 0.95, height * 0.65); const codeX = (width - codeSize) / 2; // 水平居中 const codeY = height * 0.05; // 顶部留5%空白 ctx.drawImage(codeCanvas, codeX, codeY, codeSize, codeSize); } catch (e) { console.error('生成DataMatrix失败:', e); } // 返回图片的base64数据 return canvas.toDataURL('image/png'); } //打印A类型标签 function printPageA(serialNo, dmCode){ //初始化打印机 LODOP.NewPage(); LODOP.SET_PRINT_PAGESIZE(0,150,150,""); LODOP.ADD_PRINT_IMAGE(5, 10, 46, 46, dmCode); LODOP.SET_PRINT_STYLEA(0, "Stretch", 2); } //打印B类型标签 function printPageB(serialNo, dmCode){ //初始化打印机 LODOP.NewPage(); LODOP.SET_PRINT_PAGESIZE(0,600,180,""); LODOP.ADD_PRINT_IMAGE(2, 17, 46, 46, dmCode); LODOP.SET_PRINT_STYLEA(0, "Stretch", 2); //打印二维码的内容 LODOP.ADD_PRINT_TEXT(40,25,220,15, serialNo); LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑"); LODOP.SET_PRINT_STYLEA(0,"FontSize",8); LODOP.SET_PRINT_STYLEA(0,"Bold",1); } //打印C标签 function printPageC(serialNo, dmCode){ //初始化打印机 LODOP.NewPage(); LODOP.SET_PRINT_PAGESIZE(0,400,120,""); LODOP.ADD_PRINT_IMAGE(2, 15, 36, 36, dmCode); LODOP.SET_PRINT_STYLEA(0, "Stretch", 2); //打印二维码的内容 LODOP.ADD_PRINT_TEXT(32,21,220,15,serialNo); LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑"); LODOP.SET_PRINT_STYLEA(0,"FontSize",6); LODOP.SET_PRINT_STYLEA(0,"Bold",1); }