Lodop 分页详解,可详细了呢

Posted 谢皓宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lodop 分页详解,可详细了呢相关的知识,希望对你有一定的参考价值。

首先我们在打印之前数据肯定是要准备好的,首先把标题 题头等信息准备好,然后循环列表采用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;
            //列头--------------------------------------------
     这里如姓名,性别,所在班级等
            for(var j=i*pageRecorders;j<(i+1)*pageRecorders;j++){
                if(j>=totalRows){
                    break;
                }
            //数据---------------------------------------------    
     这里如: 小红  女  A12班
                tvalue++;
            }
            LODOP.NewPage();
        }

最后还可以加上合计等 :

LODOP.ADD_PRINT_TEXT("118mm", "12mm", "80mm", "5mm",男生: "+123+" 女生:"+guestSum);

LODOP.SET_PRINT_STYLEA(0, "PageIndex", "Last");

0 代表当前元素,pageindex代表页码  last 代表最后一页

这样lodop  分页打印就完成了。

 

以上是关于Lodop 分页详解,可详细了呢的主要内容,如果未能解决你的问题,请参考以下文章

Lodop控件NewPage();测试输出空白页

LODOP某内容关联条码后自动分页

求懂 lodop打印控件的人 请教超文本分页实现

lodop分页,页眉页脚,foreach分页代码

为啥我用lodop打印时中间会出现空白页,怎么进行分页设置

LODOP 使用 和分页 加上每一页打印多少份