首先我们在打印之前数据肯定是要准备好的,首先把标题 题头等信息准备好,然后循环列表采用json串的方式,这样方便遍历和修改
直接把list转换成json,然后赋值给一个对象的某个属性。这样前台就可以直接遍历json串了。
json = JsonUtiles.getJsonDataFromCollection(list);//分页newpage用,传递json串,然后解析 finalModel.setJsonString(json); model.addAttribute("singleInfo",finalModel);
这样json串就传递到前台了。
前台只需 var jsonString = '${singleInfo.jsonString}';
var jsonList = eval("(" + jsonString + ")");
这样就可以获得json串了。
下面开始分页(下面是lodop部分):
var totalRows = jsonList.length; //总记录条数,这里就是在前台获得的json串 var hasPreviousPage = false; //是否有下一页 var pageHeight = 140; //纸张高度(单位mm) var pageRecorders = parseInt((pageHeight-40)/6); //纸张高度去掉页眉数据,去掉上面的一些标题页码等占用的距离,如果没有直接写就可以,本文高度为 6mm,所以除以6 var totalPages = 1; if((totalRows % pageRecorders) == 0) { totalPages = parseInt(totalRows / pageRecorders); }else{ totalPages = parseInt(totalRows / pageRecorders) + 1; } if(totalPages == 1){ hasPreviousPage = false; }else{ hasPreviousPage = true; } alert("页码 : "+totalPages); alert("每页 : "+pageRecorders+"条"); for(var i=0;i<totalPages;i++){ //总页数 var tvalue = 0; //列头--------------------------------------------这里如姓名,性别,所在班级等 LODOP.ADD_PRINT_TEXT("30mm","12mm","22mm","5mm","记账日期"); LODOP.ADD_PRINT_TEXT("30mm","32mm","22mm","5mm","记账时间"); for(var j=i*pageRecorders;j<(i+1)*pageRecorders;j++){ if(j>=totalRows){ break; } //数据---------------------------------------------这里如: 小红 女 A12班 LODOP.ADD_PRINT_TEXT((38+(tvalue*6))+"mm","12mm","20mm","10mm",jsonList[j].chargeDate); LODOP.ADD_PRINT_TEXT((38+(tvalue*6))+"mm","32mm","25mm","5mm",jsonList[j].chargeTime); tvalue++; } LODOP.NewPage(); }
最后还可以加上合计等 :
LODOP.ADD_PRINT_TEXT("118mm", "12mm", "80mm", "5mm",男生: "+123+" 女生:"+guestSum);
LODOP.SET_PRINT_STYLEA(0, "PageIndex", "Last");
0 代表当前元素,pageindex代表页码 last 代表最后一页
这样lodop 分页打印就完成了。