1:下載下傳smsx.cab元件,本人附上破解版元件,位址scriptx授權制作工具
2:在jsp頁面添加如下代碼
//列印需要的CSS
<style media="print" type="text/css">
.Noprint{display:none;}
.Yesprint{display:block;}
.PageNext{page-break-after: always;} //分頁的時候用,這裡沒用到
*{word-wrap: break-word; word-break: break-all;} //用來給table,div之類的自動換行
</style>
//初始化列印元件,第一次需要安裝
<OBJECT id="factory" codeBase="<%=ctx%>/plugins/smsx.cab#Version=6,3,438,06"
height="0" width="0" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext>
</OBJECT>
//列印按鈕
<td class="bcCls" width="25"><a href="javascript:printdiv('hiddenTag1')" target="_blank" rel="external nofollow" >列印</a></td>
//列印預覽
<td class="bcCls" width="60"><a href="javascript:printView('hiddenTag1,hiddenTag2','div_print')" target="_blank" rel="external nofollow" >列印預覽</a></td>
3:對應的JS代碼
需要自行引入jquery
//初始化列印元件屬性
function printBase(hiddenTags,showTags) {
if(hiddenTags!=""&&hiddenTags!=null){
var hiddenTag=hiddenTags.split(",");
for(var i=0;i<hiddenTag.length;i++){
$("#"+hiddenTag[i]).removeClass("Yesprint");
$("#"+hiddenTag[i]).addClass("Noprint");
}
}
if(showTags!=""&&showTags!=null){
var showTag=showTags.split(",");
for(var i=0;i<showTag.length;i++){
$("#"+showTag[i]).removeClass("Noprint");
$("#"+showTag[i]).addClass("Yesprint");
}
}
factory.printing.header = "" //頁眉
factory.printing.footer = "" //頁腳
factory.printing.portrait = true //true為縱向列印,false為橫向列印
factory.printing.leftMargin = 15.0 //左頁邊距
factory.printing.topMargin = 5.0 //上頁邊距
factory.printing.rightMargin = 0.75 //右頁邊距
factory.printing.bottomMargin = 1.5 //下頁邊距
}
function printdiv(hiddenTags,showTags)
{
printBase(hiddenTags,showTags);
factory.DoPrint(true);
}
function printView(hiddenTags,showTags){
printBase(hiddenTags,showTags);
factory.printing.Preview();
}
網上針對IE列印有很多中方法,大概有三種
1:window.print(),此方法可以列印,但是不可以預覽
2:WebBrowser,利用IE自帶的元件列印,此元件可以列印(局部列印)也可以預覽,但是預覽的時候不可以預覽局部。如果有人找到解決辦法,求賜教。
3:就是利用SMSX.CAB元件,此元件第一次需要安裝。
另外附上IE下此元件加載失敗的解決辦法 http://blog.csdn.net/yjlwl1213/article/details/3929848