javascript结合WebBrowser实现打印预览、直接打印、页

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=页面设置>  

posted @   架构师聊技术  阅读(719)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示