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下的设备调试,如果设备提供了驱动,按照厂家的驱动调试即可:设备未 ...
随机推荐
- [Solution] Microsoft Windows 服务(1) C#创建Windows服务
Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而 ...
- ADO.NET完整增删改
完整增添 删除 修改 运用中间变量运用.bool has=false 1增加 需要使用cmd.Parameters这个集合 占位符: @key 代表这个位置用这个占位符占住了 SqlConnectio ...
- WCF小结
WCF总结 1.WCF(原代号为Indigo)是一个用于创建和运行分布式系统的技术集合,使用它能创建安全的.可靠的.跨平台的的分布式解决方案.它的面向服务的编程模型,整合了.Net平台下以往全部的分布 ...
- 与众不同 windows phone (42) - 8.0 相机和照片: 通过 PhotoCaptureDevice 捕获照片
[源码下载] 与众不同 windows phone (42) - 8.0 相机和照片: 通过 PhotoCaptureDevice 捕获照片 作者:webabcd 介绍与众不同 windows pho ...
- LeetCode129:Sum Root to Leaf Numbers
题目: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a nu ...
- 译 PrestaShop开发者指南 第三篇 设置本地安装环境
## 环境要求 - Unix, Linux 或 Windows - Web服务器:Apache 1.3 或更高的版本 - PHP:5.2或更高版本 - MySQL:5.0或更高版本 PrestaSho ...
- Java、Hibernate(JPA)注解大全
1.@Entity(name=”EntityName”) 必须,name为可选,对应数据库中一的个表 2.@Table(name=””,catalog=””,schema=””) 可选,通常和@Ent ...
- Maven创建servlet项目演示(三)
上一节用Maven新建了web项目成功后,本文演示在此基础上应用servlet. 从对tomcat服务器进行配置可的过程中可以知道,tomcat作为servlet容器运行,负责处理客户请求,把请求传送 ...
- 从Android系统出发,分析Android控件构架
从Android系统出发,分析Android控件构架 Android中所有的控件追溯到根源,就是View 和ViewGroup,相信这个大家都知道,但是大家也许会不太清楚它们之间的具体关系是什么,在A ...
- eclipse easyexplorer openexplorer
电脑重装了.. eclipse换成了4.4.2,发现原来的easyexplorer不生效了(原来是4.2),搜了下,换成了open explorer即可. 方式一样,都是丢到eclipse/plugi ...