javascript中的print函数实现了直接打印页面元素的功能,可是并没有实现页面预览、页面设置等功能。要实现它们需要借助于微软的WebBrowser组件。
WebBrowser已经内置于ie中,客户端不需要安装,我们只需要在页面中引用就OK了。
以下为引用的内容: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
<script language="javascript" type="text/javascript"> <!-- //打印预览 function printPreview() { var e = event.srcElement; e.style.visibility = "hidden"; document.getElementById("btnPrint").style.display="none"; document.all.WebBrowser1.ExecWB(7,1); e.style.visibility = "visible"; document.getElementById("btnPrint").style.display=""; } //页面设置 function pageSet() { document.all.WebBrowser1.ExecWB(8,1); } //另存为 function print() { var e = event.srcElement; e.style.visibility = "hidden"; document.getElementById("btnPreview").style.display="none"; document.all.WebBrowser1.ExecWB(4,1); e.style.visibility = "visible"; document.getElementById("btnPreview").style.display=""; } function RdlcPrint(RDLCName) //打印函数 { var RdlcFrame=window.frames['ReportFrame'+RDLCName].frames['report']//两个Frame嵌套。。 RdlcFrame.focus();//此句必须 RdlcFrame.print();//打印 }
function Button2_onclick() //实现打印 { RdlcPrint('ReportViewer1'); }
--> </script>
</head> <body> <form id="form1" runat="server"> <input id="btnPreview" type="button" value="打印预览" onclick="printPreview()" /> <input id="btnPrint" type="button" value="打印设置" onclick="pageSet()" /> <object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object> </form> </body> </html>
|
javascript对WebBrowser的操作设置其它功能:
<input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为>
<input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选>
<input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性>
<input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印>
<input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印>
<input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置>