浏览器打印经验总结

    js调用浏览器打印(可设置页眉、页脚、页边距)

如果有好用的打印控件,用打印控件。如果没有,可以直接用浏览器自带的打印功能。

 

1.1普通打印

网页内容直接打印

window.print();

1.2打印指定区域

  简单打印当前网页某一块内容,先使要打印的那一块获得焦点,然后打印即可,代码如下:

        document.getElementById('要打印的区域id').focus();

                 window.print();

       css控制某一部分不打印

         当然,使用css来控制某一区域不打印,也是很方便的。

代码如下(红色部分是关键)。该样式,在浏览的时候可以正常显示,只是打印的时候不打印class为noprint的元素。

        <style type="text/css" media="print">

           .noprint{ display : none }

        </style>

1.3套打

如果用户已经有打印表格,只需要你打印数据内容上去,就是所谓的套打。

你当然可以设计一个只有要打印的数据项的表格,然后通过css来控制元素的位置和字体等格式。也可以结合 1.2.2的描述将不需要打印的部分隐藏,这样更便于你的打印预览调试。

1.5 iframe打印

如果你的打印格式比较复杂,在现有页面通过上边介绍的方式实现起来比较麻烦,那就干脆使用iframe打印吧。那样你只需要提前画好一个页面,在要打印的时候使用js将内容或者模板页面路径传给iframe即可。

代码如下:

    window.frames['printFrm'].location.href = "页面路径";

    setTimeout("printAction()","1000");//为防止页面未加载完就打印,延迟一秒

 

    function printAction(){

        window.frames['printFrm'].focus();

        window.frames['printFrm'].print();

    }

如果不希望iframe被看到,就像下边这样,将高度设置为0吧

<iframe style="height:0px;" id="printFrm" name="printFrm" src="">

</iframe>

当然,如果需要自己来控制页边距、页眉、页脚等,可以先按 1.6中描述方式进行设置。

1.6修改浏览器打印设置

在打印的时候,你可能希望由自己来控制页边距、页眉、页脚等。可以按如下方式,在打印前进行相应的设置(注:由于使用了ActiveXObject,需要进行相应的浏览器安全设置,最简单的就是把访问地址设置为“受信任的站点”)。

 

function setPrint(){

    var hkey_root,hkey_path,hkey_key;

    hkey_root="HKEY_CURRENT_USER";

hkey_path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";

     //设置网页打印的页眉页脚为空

    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,"");

//设置下页边距(0)

       hkey_key="margin_bottom";  

       RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0");

//设置左页边距(0)

       hkey_key="margin_left";

       RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0");

       //设置右页边距(0)

       hkey_key="margin_right";

       RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0");

       //设置上页边距(0)

       hkey_key="margin_top";

       RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0");

    }catch(e){

        alert('请将本系统地址加入"受信任的站点",否则打印格式可能会不正确!');

    }

}

 

复杂的设置,后续补充…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值