接着上一篇博文,繼續說說關於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(); //分頁 };
這樣就可以進行分頁打印預覽了,我可能描述的不清楚,有問題可以在下面提問。