先贴代码:

<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. nodePPT初认识启动与手机控制

    最近要做个PPT,想起之前看到过个网页PPT,于是这次就想尝试下,搜了下弹出个nodeppt---有可能是最好的网页PPT,那,就这个吧. 按照文档来,貌似有点问题,百度,又是一堆粘贴复制,没点用.自 ...

  2. 【Win10】单元测试中捕获异步方法的指定异常

    温馨提醒:本文需要知道什么是单元测试才能阅读. 在之前 WPF.ASP.NET 中,单元测试要捕捉指定异常,我们是通过 ExpectedExceptionAttribute 来实现的.如下图: 但是, ...

  3. C#开源资源项目

    一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(as ...

  4. jQuery的事件click

    不管是在asp.net 还是asp.net mvc中,对象的click事件是我们最常用到的一个事件,说明用户click点击一下mouse的左键,铵下并放开的事件. 今天已经是十一月份了,学习又是新的开 ...

  5. JS代码放置位置、变量与数据类型、运算符与逻辑表达运算符

    内容简要: 1.JS代码放置位置的问题: 2.变量与数据类型: 3.运算符与逻辑表达式的运算符   我的位置 全局问题:为何在网页推荐位置(一般在<head></head>内部 ...

  6. 论那些年我们讨论过的Bank系统!

    今天呢我就和大家分享一下怎样用对象数组的形式来实现一个简单的银行系统, 首先呢,跟大家介绍一下这个简单的银行操作系统要实现的一些主要的功能: 主要功能有 : 1.开户功能 2.存款 3.取款 4.转账 ...

  7. C#中dategridview数据导出为excel文件

    先从数据库中获取数据,绑定在datagridview中,再从dategridview中导出为excel文件 1.新建窗体,把控件datagridview和按钮设置好,如图

  8. 不可或缺 Windows Native (7) - C 语言: 指针

    [源码下载] 不可或缺 Windows Native (7) - C 语言: 指针 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 指针 示例cPointer.h #i ...

  9. 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout

    [源码下载] 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout 作者:webabcd 介绍与众不同 windows ...

  10. 百度FIS入门

    1.fis作为nodejs的模块来管理的,所以首先得安装nodejs,看我前面的安装nodejs的文章. 2.官方的案例下载包https://github.com/hefangshi/fis-quic ...