首页 > 网站 > WEB开发 > 正文

IE下实现打印功能

2024-04-27 14:23:17
字体:
来源:转载
供稿:网友

IE下实现打印功能

先贴代码:

<html><head>    <style type="text/CSS">        *{margin:0px;padding:0px;}        .noPRint{margin:20px 0px;}        .noprint input{padding:5px 10px;margin:10px 5px;}        #p{display:none;}    </style>        <!--该样式表设置的是打印时的样式,要放到其他style的下面,否则会被覆盖-->    <style media="print">        .noprint { display : none;}        #p{display:block;}    </style>    <script>        function doPrintSetup() {            IEPrinter.setup();        }        function doPrintPreview() {            IEPrinter.preview();        }        function doPrint() {            IEPrinter.print();        }                ////边距设置时要注意数值单位        var IEPrinter = (function(){            var HKEY_Root, HKEY_Path, HKEY_Key                ,HKEY_Root = "HKEY_CURRENT_USER"                ,HKEY_Path = "//Software//Microsoft//Internet Explorer//PageSetup//"                ,Wsh,PRINT_SETTING={},printWB;                        window.onload= Init;                        ////保存默认值            function Init(){                ////生成Object标签                                var html = "<object id='printWB' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2' style='none'></object>";                document.body.innerHTML += html;                printWB = document.getElementById("printWB");                try {                    Wsh = new ActiveXObject("WScript.Shell");                }catch (e) {                    return alert("请使用IE浏览器");                }                                //页眉                PRINT_SETTING.Header = ReadReg("header");                //页脚                PRINT_SETTING.Footer = ReadReg("footer");                //下页边距                PRINT_SETTING.MarginBottom = ReadReg("margin_bottom");                //左页边距                PRINT_SETTING.MarginLeft = ReadReg("margin_left");                HKEY_Key = "margin_right";                //右页边距                PRINT_SETTING.MarginRight = ReadReg("margin_right");                //上页边距                PRINT_SETTING.MarginTop = ReadReg("margin_top");                //【启用缩小字体填充】yes|no                PRINT_SETTING.ShrinkToFit = ReadReg("Shrink_To_Fit");                //【打印背景颜色和图像】yes|no                PRINT_SETTING.PrintBackground = ReadReg("Print_Background");            }                        function SetPrintOpt(opt) {                //设置页眉                SetReg("header",opt.Header);                //设置页脚                SetReg("footer",opt.Footer);                //设置下页边距                SetReg("footer",opt.MarginBottom);                //设置左页边距                SetReg("margin_left",opt.MarginLeft);                //设置右页边距                SetReg("margin_right",opt.MarginRight);                //设置上页边距                SetReg("margin_top",opt.MarginTop);                //设置【启用缩小字体填充】                SetReg("Shrink_To_Fit",opt.ShrinkToFit);                //设置【打印背景颜色和图像】                SetReg("Print_Background",opt.PrintBackground);            }                        function ReadReg(key){                return Wsh.RegRead(HKEY_Root + HKEY_Path + key);            }                        function SetReg(key,val){                Wsh.RegWrite(HKEY_Root + HKEY_Path + key,val);            }                        return {                setInitOption:SetPrintOpt                ////打开打印设置窗口                ,setup:function(){                    printWB.ExecWB(8, 1);                }                ,preview:function(){                    printWB.ExecWB(7, 1);                }                ,print:function(){                    printWB.ExecWB(6, 6);                }            };        }());    </script></head><body>    <div id="noprint" class="noprint">        <p>点击【打印】按钮前要更改浏览器设置:IE7及IE8用户,请先选择浏览器的“工具”-->“Internet选项”-->“安全”-->“自定义级别”中的</p>        <p>“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”以及“下载未签名的ActiveX控件”设置为“启用”或“提示”。</p>        <p>IE8以上用户,请先选择浏览器右上角的设置按钮然后选择“Internet选项”,后续操作同上。</p>        <hr />                <input type="button" value="打印设置" onclick="doPrintSetup();" />        <input type="button" value="打印预览" onclick="doPrintPreview();" />        <input type="button" value="打印准考证" onclick="doPrint();" />    </div>    <p id="p">ppp</p>    <span>spannnn</span></body></html>

着重点有这么几个

1.

<style media="print">   .noprint { display : none;}   #p{display:block;}</style>

该标签设置的样式只针对打印时的效果,所以可以设置某些打印时要隐藏,或者只有打印时才显示的内容。而且该标签最好放到其他样式表的后面,否则会被覆盖。

2.使用打印功能要对浏览器做相应的设置才可以。

IE7及IE8:“工具”-->“Internet选项”-->“安全”-->“自定义级别”中的“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”以及“下载未签名的ActiveX控件”设置为“启用”或“提示”。IE8以上用户,请先选择浏览器右上角的设置按钮然后选择“Internet选项”,后续操作同上。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表