接着上一篇博文,继续说说关于lodop,关于模板设计及相关的这里不多说了,上一篇博文最下面的推荐可以看看,说的很比较清楚,今天说说我在项目中运用套打实现分页预览和打印的,
之前弄lodop打印的时候发现如果要分页的话,结果你点打印预览的时候会吃出现已经有预览也打开了,也就是说,当时的分页打印只能预览一张,最后在lodop的官方实例中找到相关解决办法。
function prn1_preview() { //打印预览的方法 LODOP=getLodop(); LODOP.PRINT_INIT(0,-1,1177,600,""); LODOP.SET_PRINT_PAGESIZE(1,"977mm","524mm","");//设置纸张高度, 实现分页打印 LODOP.ADD_PRINT_SETUP_BKIMG("C:\\Users\\44806\\Desktop\\销货清单套打样板.png"); LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true); LODOP.SET_SHOW_MODE("BKIMG_PRINT",true); //连续打印几页 arr数组是我从数据库读取出来的数据 var totalPageCount = arr.length / 6; for(var i = 0; i < totalPageCount; i++){ //每次截取6条数据 if(totalPageCount > 1){ //需要分页 //每次截取6个 printArr = arr.slice(i*6,i*6+6); //截取每页打印的数量 }else{ printArr = arr; } //分页打印 CreateOneFormPage(printArr); } LODOP.PREVIEW(); };
function CreateOneFormPage(printArr){ //创建数据的方法 LODOP.ADD_PRINT_TEXT(40,873,146,20,"AOI020170620000001"); LODOP.ADD_PRINT_TEXT(73,542,161,20,"北京益友汇科技有限公司"); LODOP.ADD_PRINT_TEXT(397,867,100,20,"2017-06-20"); LODOP.ADD_PRINT_TEXT(397,749,60,20,"张三"); LODOP.ADD_PRINT_TEXT(333,232,368,20,"玖拾万元整"); var len = 34; //多条记录打印 for(var i = 0; i < printArr.length; i++){ //每页最多打印六条 LODOP.ADD_PRINT_TEXT(133 + (i * len),113,103,20,printArr[i].prodName); LODOP.SET_PRINT_STYLEA(0,"FontSize",7); LODOP.ADD_PRINT_TEXT(133 + (i * len),218,85,20,printArr[i].prodSpecifications); LODOP.SET_PRINT_STYLEA(0,"FontSize",8); LODOP.ADD_PRINT_TEXT(133 + (i * len),318,40,20,printArr[i].prodMaxUnitName); LODOP.ADD_PRINT_TEXT(133 + (i * len),365,55,20,"1500.00"); LODOP.ADD_PRINT_TEXT(133 + (i * len),427,50,20,"100"); LODOP.ADD_PRINT_TEXT(133 + (i * len),497,70,20,"1500"); LODOP.ADD_PRINT_TEXT(133 + (i * len),604,75,20,"1400"); LODOP.ADD_PRINT_TEXT(133 + (i * len),707,87,20,"150000.00"); } LODOP.NEWPAGEA(); //分页 };
这样就可以进行分页打印预览了,我可能描述的不清楚,有问题可以在下面提问。