You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.8 KiB
153 lines
4.8 KiB
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);
|
|
}
|