• javascript页面打印


    打印本身比较简单,但要考虑到具体的需求。比如

    1. 多浏览器:

    if (isIE()) {
        //打印预览
        WebBrowser1.execWB(7, 1);
    }
    else {
        window.print();
    }

    如代码所示, IE浏览器与其他浏览器的使用的方式是不一样的,如在chrome浏览器中使用window.print显示的是打印预览,而在IE中显示的是打印界面(选择打印机),如果想在IE中显示打印预览,则需要在代码中增加如下的标签,在使用如上的WebBrowser1.

    <OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>

    2. 局部打印。

    一般js打印功能其实就是调用的页面的打印功能, 所以默认是打印整个页面,也就是document.body。如果要打印部分页面的话,可以有三种方案:

    一是把要打印的DIV区域赋值给document.body, 待打印完成后,再还原。代码如下:

     var bodyHtml = document.body.innerHTML;//获取当前页的html代码
     var divPrint = document.getElementById('divprint');
    
     if (divPrint) {
           document.body.innerHTML = divPrint.innerHTML;
           if (isIE()) {
               if (WebBrowser1) {
                     //打印预览
                     WebBrowser1.execWB(7, 1);
               } 
               window.close();
           }
           else {
                window.print();
           }
      }
     document.body.innerHTML = bodyHtml;   

    二是把要打印的区域在新的页面中打开,再执行打印。

       这里有个小提示,在新的页面中打开,我的处理方法是打开新页面时,隐藏要打印的页面,直接弹出打印预览,打印完成后直接关闭窗口,这样体验会好些。

    三是使用CSS样式,这样就不打印指定样式的DIV,如下代码

        <style type="text/css" media="print">
            .noprint {
                display: none;
            }
        </style>

    3. 取消页眉页角

    打印预览时我们会发现,页眉页角的东西不是我们想要的,如果想要去掉的,最好的方式还是通过页面设置

    如果是IE浏览器的话,可以通过代码来设置,但是需要对浏览器进行设置。

    代码如下:

    这段代码是从网上找地,特此说明!!!

    var hkey_root,hkey_path,hkey_key;
    hkey_root="HKEY_CURRENT_USER";
    hkey_path="\Software\Microsoft\Internet Explorer\PageSetup\";
    
    
    //网页打印时清空页眉页脚
    function pagesetup_null() {
        try {
            var RegWsh = new ActiveXObject("WScript.Shell");
    
            hkey_key = "header"
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "")
            hkey_key = "footer"
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "")
        } catch (e) {
            console.dir(e);
        }
    }
    function pagesetup_default() {
        try {
            var RegWsh = new ActiveXObject("WScript.Shell")
            hkey_key = "header"
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&w&b页码,&p/&P")
            hkey_key = "footer"
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&u&b&d")
        } catch (e)  {
            console.dir(e);
        }
    }
  • 相关阅读:
    基于Centos7.2搭建Cobbler自动化批量部署操作系统服务
    Centos 7 Linux系统修改网卡名称为ethx
    解决端口被占用而导致软件运行失败,程序无法启动,无法安装开发工具等问题
    applicationContext.xml文件放置位置不同而导致的jUnit测试的时候路径的不同
    myeclipse中的web项目导入到eclipse中注意事项,项目部署到tomcat后无法访问jsp文件
    SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)
    ApplicationContext.xml文件详解
    SSH项目练习的时候报错:[applicationContext.xml]: Invocation of init method failed;
    [转载]快速搭建Spring MVC 4开发环境
    struts配置测试中遇到报错信息,记录下
  • 原文地址:https://www.cnblogs.com/hankuikui/p/6669136.html
Copyright © 2020-2023  润新知