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选项”,后续操作同上。
IE下实现打印功能的更多相关文章
- 完美演绎DevExpress XtraPrinting Library 的打印功能
完美演绎DevExpress XtraPrinting Library 的打印功能 2010-05-14 17:40:49| 分类: 默认分类|字号 订阅 设计报告不仅费时间,而且还乏味!但 ...
- vc 实现打印功能
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...
- DevExpress打印功能 z
一.打印功能说明: 打印功能,我们有多种实现方式,可以根据需要自行选择,我简单的总结下两种方法. (1).使用微软.net框架自带的PrintDocument,这种方式是直接借助Graphics,自行 ...
- 网站开发进阶(十二)JS实现打印功能(包括打印预览、打印设置等)
JS实现打印功能(包括打印预览.打印设置等) 绪 最近在进行项目开发时,需要实现后台管理端打印功能,遂在网上一阵搜索,搜到了很多相关的文章.其中绝大部分文章都是使用的Lodop5.0(Web打印和套打 ...
- VS2013自带报表+打印功能
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010773667/article/details/27540389 经过了VB版机房收费系统的学习 ...
- 浅谈QT打印功能实现
QT作为一款轻量级的集成开发环境,其设计的目标是使开发人员利用QT这个应用程序框架更加快速及轻易的开发应用程序.要达到此目的,要求QT必须能够跨平台,QT能够在32位及64位的Linux,MAC OS ...
- C/S模式下的打印方法
C/S模式使用润乾报表时有两种打印方法(都使用设计器授权) 1. 使用加密狗打印 这种方式需要使用加密狗,适用于客户端较少时 2. 使用api调用打印方法实现打印 ...
- 【JS】通过JS实现超市小票打印功能——ActiveX控件
应客户的需求= = ,要在网页端实现打印小票的功能 先来一张打印出的小票效果图(合计明显不对,因为有修改订单功能,请各位忽略) 用什么方法实现呢: 我想应该是有三种吧 1.用第三方的浏览器控件(这个好 ...
- 【转】Android打印机--没有设备驱动sdk,自己实现USB打印功能
原文:http://blog.csdn.net/johnwcheung/article/details/71576833 Android下的设备调试,如果设备提供了驱动,按照厂家的驱动调试即可:设备未 ...
随机推荐
- Django--models基础
需求 了解models字段和参数 速查 models.py 1 2 3 class UserInfo(models.Model): ctime = models.DateTimeField( ...
- CentOS6.5菜鸟之旅:纯转载Linux目录结构
来自:http://www.iteye.com/topic/1125162 使用linux也有一年多时间了 最近也是一直在维护网站系统主机 下面是linux目录结构说明 本人使用的是centos系 ...
- 数论 --- 费马小定理 + 快速幂 HDU 4704 Sum
Sum Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的 ...
- 重构第11天 使用策略代替Switch(Switch to Strategy)
理解:策略就是平常设计模式中所说的策略模式.因为当你有一个庞大的switch方法的时候,每一次新加一个条件,都要去修改这个方法,这样耦合性太高,不易维护也不易扩展.这样我们就可以使用策略的设计模式,使 ...
- 克隆复制可使用原型( Prototype)设计模式
今天有学习设计模式的原型(Prototype)<设计模式--原型(Prototype)模式>http://www.cnblogs.com/insus/p/4152773.html .为了加 ...
- ASP.NET 取得 Uri 各项属性值
Uri uri = new Uri("http://www.yoercn.com/aboutus/idea.html");string Host = uri.Host; ...
- Dev gridView中设置自适应列宽和日期显示格式、金额的显示格式
在Dev GridView控件中,数据库中表数据日期都是长日期格式(yyyy-MM-dd HH:mm:ss),但显示在控件变成短日期格式(yyyy-MM-dd),金额显示要显示精确的数值, 比如80. ...
- Python 3.X 实现定时器 Timer,制作抽象的Timer定时器基类
Python 在不依赖第三方库的前提下,对于定时器的实现并不是很完美,但是这不意味着我们无法实现. 阅读了网上的一些资料,得出一些结论,顺手写了一个基类的定时器(Python3) BaseTimer: ...
- [moka同学摘录]Yii2.0开发初学者必看
想要了解更多YII,PHP方面内容,请关注本博客. 基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx ...
- Java集合 Json集合之间的转换
1. Java集合转换成Json集合 关键类:JSONArray jsonArray = JSONArray.fromObject(Object obj); 使用说明:将Java集合对象直接传进JSO ...