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=页面设置>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端