zoukankan      html  css  js  c++  java
  • javascript实现jsp页面的打印预览

    1、加载WebBrowser打印预览控件

    <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="3"></OBJECT> 
    <input type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)>
    --------------------------------------WebBrowser控件 ---------------------------------------------
    <OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT></OBJECT>
    <input type=button value=打开 onclick=document.all.WebBrowser.ExecWB(1,1)>
    <input type=button value=另存为 onclick=document.all.WebBrowser.ExecWB(4,1)>
    <input type=button value=全选 onclick=document.all.WebBrowser.ExecWB(17,1)>
    <input type=button value=属性 onclick=document.all.WebBrowser.ExecWB(10,1)>
    <input type=button value=关闭窗口 onclick=document.all.WebBrowser.ExecWB(45,1)>
    <input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>
    <input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>
    <input type=button value=页面设置 onclick=document.all.WebBrowser.ExecWB(8,1)>
    <input type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)>

    或者用超链接添加自定义函数

    <a href="javaScript:printpreview();" >◆ 打印预览 </a>

    自定义函数主要实现打印预览去掉页眉页脚

    <script type="text/javascript">
    //设置网页打印的页眉页脚为空
    var HKEY_Root,HKEY_Path,HKEY_Key;      
    HKEY_Root="HKEY_CURRENT_USER";      
    HKEY_Path="//Software//Microsoft//Internet Explorer//PageSetup//";      
    function PageSetup_Null()     {     
       try{      
           var Wsh=new ActiveXObject("WScript.Shell");      
           HKEY_Key="header";      
           Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");      
           HKEY_Key="footer";      
           Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");      
       }catch(e){}      
    }  
    function printpreview(){ PageSetup_Null(); // 打印页面预览 wb.execwb(7,1); }; </script>

    2.设置不打印的元素:设置样式,并添加到不需要展示的元素(class="noprint")

     <style media="print" type="text/css"> 
        .Noprint{display:none;} 
        .PageNext{page-break-after: always;} 
    </style> 

    3.【遇到问题】当前网页是通过window.parent.openWindowCanClose(url,title,width,height) ;方式打开的窗口,打印的区域则包括了父窗口,而并不是我们当前设置的子窗口。

        我猜想web打印预览方法是基于window对象的,因此想要只是打印子窗口那么必须是另打开一个新网页。

    window.open(url,title,width,height,"_blank");

     4.【遇到问题】当在本地测试该功能时可以正常预览,但是换在服务器上测试该功能时发现提示【 Internet Explorer 已经阻止此站点用不安全方式使用 ActiveX 控件

        这个是由于浏览器的安全级别设置引发的,最直接的方法就是【添加信任站点】

        设置方式:【工具】-【Internet选项】-【受信任的站点】-【站点】-填入网址(若这个网站不是以https:开头,将【对该区域中所有站点要求服务器验证】选项勾选去掉)

  • 相关阅读:
    简单聊聊智能硬件的固件测试
    Regular进阶: 跨组件通信
    项目组建和磨合阶段常见的坑
    从需求到数据到改进,如何形成闭环
    请不要怪罪流程
    自备干货!如何有效的做竞品迭代分析
    css小点心
    java的collection集合
    java中的数组与集合相互转换
    java-增强for循环
  • 原文地址:https://www.cnblogs.com/zhutouying/p/3421743.html
Copyright © 2011-2022 走看看