先贴代码:

<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选项”,后续操作同上。

IE下实现打印功能的更多相关文章

  1. 完美演绎DevExpress XtraPrinting Library 的打印功能

    完美演绎DevExpress XtraPrinting Library 的打印功能 2010-05-14 17:40:49|  分类: 默认分类|字号 订阅     设计报告不仅费时间,而且还乏味!但 ...

  2. vc 实现打印功能

    Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...

  3. DevExpress打印功能 z

    一.打印功能说明: 打印功能,我们有多种实现方式,可以根据需要自行选择,我简单的总结下两种方法. (1).使用微软.net框架自带的PrintDocument,这种方式是直接借助Graphics,自行 ...

  4. 网站开发进阶(十二)JS实现打印功能(包括打印预览、打印设置等)

    JS实现打印功能(包括打印预览.打印设置等) 绪 最近在进行项目开发时,需要实现后台管理端打印功能,遂在网上一阵搜索,搜到了很多相关的文章.其中绝大部分文章都是使用的Lodop5.0(Web打印和套打 ...

  5. VS2013自带报表+打印功能

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010773667/article/details/27540389 经过了VB版机房收费系统的学习 ...

  6. 浅谈QT打印功能实现

    QT作为一款轻量级的集成开发环境,其设计的目标是使开发人员利用QT这个应用程序框架更加快速及轻易的开发应用程序.要达到此目的,要求QT必须能够跨平台,QT能够在32位及64位的Linux,MAC OS ...

  7. C/S模式下的打印方法

     C/S模式使用润乾报表时有两种打印方法(都使用设计器授权) 1.         使用加密狗打印 这种方式需要使用加密狗,适用于客户端较少时 2.         使用api调用打印方法实现打印 ...

  8. 【JS】通过JS实现超市小票打印功能——ActiveX控件

    应客户的需求= = ,要在网页端实现打印小票的功能 先来一张打印出的小票效果图(合计明显不对,因为有修改订单功能,请各位忽略) 用什么方法实现呢: 我想应该是有三种吧 1.用第三方的浏览器控件(这个好 ...

  9. 【转】Android打印机--没有设备驱动sdk,自己实现USB打印功能

    原文:http://blog.csdn.net/johnwcheung/article/details/71576833 Android下的设备调试,如果设备提供了驱动,按照厂家的驱动调试即可:设备未 ...

随机推荐

  1. 数据库收缩:NOTRUNCATE与TRUNCATEONLY

    在进行数据库收缩时,我们有2个可用选项:NOTRUNCATE,TRUNCATEONLY.这篇文章我们会详细讨论下这2个选项的具体区别. NOTRUNCATE 当你对数据库收缩命令提供NOTRUNCAT ...

  2. mysql批量生成修改表和列注释语句

    当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如 ...

  3. Linq查询操作之投影操作

    投影操作,乍一看不知道在说啥.那么什么是投影操作呢?其实就是Select操作,名字起的怪怪的.和Linq查询表达式中的select操作是一样的.它能够选择数据源中的元素,并指定元素的表现形式.投影操作 ...

  4. Json的序列化和反序列化

    1.利用js进行序列化成字符串和反序列化 var personObj = {name:"Tom",age:16}; // 利用JS序列化成字符串 var personStr = J ...

  5. MongoDB之数据分布式存储

    在MongoDB的世界,做数据分布式存储显得非常简单.只要按照前面介绍的 集群搭建 完成就完全具备了数据分布式存储的要求. 在这里分清几个概念:去前面的文章可以找到介绍 1. 复制集   功能是实现数 ...

  6. 怎样用C#代码知道是否已连接网络

    有时,上传数据和下载数据都需要用到网络,但是不知道程序是否已连接到网络,下面是简单测试是否已连接网络的小功能 1.在winform窗体上添加一个按钮和多选框

  7. 继续转 [转]php版本的cron定时任务执行器

    由于服务器crontab只能精确到分钟,那程序的起点也是分钟. 一共包括但部分: 一.配置文件: 配置文件是用来返回要执行的定时任务文件,注意一下*的使用就行了,有两个模式,就是 Y-m-d H:i ...

  8. Visual Studio 2013下JSON可视化工具

          Visual Studio 2013现在我们有个小工具可以实现JSON可视化,这样给我们调试JSON提供了便利. JSON这种数据格式已经比较流行,在WEB前端随处可见. 在你需要安装VS ...

  9. 【原创】.NET Core应用类型(Portable apps & Self-contained apps)

    介绍 有许多种方式可以用来考虑构建应用的类型,通常类型用来描述一个特定的执行模型或者基于此的应用.举例说:控制台应用(Console Application).Web应用(Web Applicatio ...

  10. MaterialRefreshLayout

    以上就介绍了比SwipeRefreshLayout更漂亮和强大的下拉刷新控件:Android-MaterialRefreshLayout 1.xml <?xml version="1. ...