miniUI打印(miniUI整合Lodop打印控件)


 代碼

<a class="mini-button" iconCLs="icon-print" plain="true" onclick="print()">打印</a> 
<script type="text/javascript" src="<%=basePath%>comm/lodop/LodopFuncs.js"></script>
function
print(){     treeG.unFrozenColumns();//打印的時候解凍表頭     setTimeout("print1()",3000);   } function print1() { var LODOP = getLodop(); //var strheadStyle = "<style>" + document.getElementById("style").innerHTML + "</style>"; var strheadStyle = "<link href=\"<%=basePath%>comm/miniui/miniui/themes/default/miniui.css\" rel=\"stylesheet\" type=\"text/css\" />"; var headNodes1 = document.getElementsByTagName("tbody")[2].innerHTML;//表頭 var rowsNodes1 = document.getElementsByTagName("tbody")[6].innerHTML;//表數據 var table = strheadStyle +"<table class=\"mini-grid-table mini-grid-rowstable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width: 100%;\">" +"<thead>"//這樣設置之后,分頁的時候可以重復打印表頭 +headNodes1 +"</thead>" //+headNodes2 +rowsNodes1 +"</table>"; var btxbm = $("#scbm")[0].value=='請選擇...'?"":$("#scbm")[0].value; var nd = mini.get("nd").text; LODOP.PRINT_INIT("年度費用管理結算總表");      LODOP.SET_PRINT_STYLEA(0,"LinkedItem",4); LODOP.SET_PRINT_STYLEA(0,"FontSize",12); LODOP.SET_PRINT_STYLEA(0,"FontColor","#FF0000"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.SET_PRINT_STYLEA(0,"ItemType",1); LODOP.SET_PRINT_STYLEA(0,"Horient",3); LODOP.ADD_PRINT_HTM(1,900,300,100,"<font color='#0000ff' format='ChineseNum'><span tdata='pageNO'>第##頁</span>/<span tdata='pageCount'>共##頁</span></font>");//設置頁碼 LODOP.SET_PRINT_STYLEA(0,"ItemType",1);//每頁都顯示 LODOP.ADD_PRINT_HTM(26,"5%","90%",109,"<h2 align='center'>"+btxbm+nd+"年度費用管理結算總表</h2>"); //LODOP.SET_PRINT_PAGESIZE(2, 0, 0, "A4"); LODOP.SET_PRINT_STYLE("FontSize",9); LODOP.SET_PRINT_STYLE("Horient", 0); LODOP.SET_PRINT_STYLE("Vorient", 2); LODOP.ADD_PRINT_TABLE(0, 0, "80%", "100%", table); LODOP.PREVIEW(); //LODOP.print(); treeG.frozenColumns(0,1);//打印完成之后重新設置鎖定表頭 }

 

直接看代碼吧。這樣配置就可以打印展現在頁面上的數據了。分頁打印還沒研究。

要注意的是miniUI 是動態生成html的,所以需要注意如果鎖定表頭的時候<tbody>的結構會發生變化,用以上打印配置語句無法打印。unFrozenColumns()一下。打印控件讀取完成之后再frozenColumns(0,1)。

由於LODOP.ADD_PRINT_TABLE這個傳入的table參數 必須是<table><tr><td></td>...</tr><tr></tr>...</table>的形式,即html只能包含一對table標簽 而且必須是以<table>標簽開頭</table>標簽結束的html字符串,Lodop打印控件才能夠識別。

有些復雜的表可能會用到miniUI的表單統計功能,這個時候就需要去查看沒有凍結表頭的HTML頁面中,統計部分在具體第幾個tbody,假如在第9個,那就可以用一下方式獲取。這個地方我只有一個頁面用到,也沒有其他復雜的大頁面也沒有測試過,大家有空可以試一試。

document.getElementsByTagName("tbody")[8].innerHTML;//統計部分

效果

miniUI頁面

打印預覽

第一頁:

 第二頁:

 

 

 本文連接:http://www.cnblogs.com/CryOnMyShoulder/p/7865702.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM