浏览器网页打印

1. 前言
客户对于一些插件比较敏感,如金融、银行等出于安全的考虑和产品的把控,可能不愿意页面打印的时候,客户端浏览器安装插件。(当然,用户有各种各样的需求和打印格式要求,愿意使用打印控件的,开发的打印功能当然很好。)
所以直接使用浏览器自带的打印功能,就成为一个选择。

2. 打印功能介绍
2.1 普通打印
如果要将当前网页的内容直接打印到白纸上,很简单,使用如下js代码即可实现。

window.print();

2.2 打印指定区域
2.2.1 简单打印某一区域
如果只需要简单打印当前网页的某一块内容,不难实现。先使要打印的那一块获得焦点,然后打印即可,代码如下:

    document.getElementById('要打印的区域id').focus();window.print();

2.2.2使用css控制某一部分不打印
当然,使用css来控制某一区域不打印,也是很方便的。

代码如下(红色部分是关键)。该样式,在浏览的时候可以正常显示,只是打印的时候不打印class为noprint的元素。

    <style type="text/css" media="print">.noprint{ display : none }</style>

2.3套打
如果用户已经有打印表格,只需要你打印数据内容上去,就是所谓的套打。

你当然可以设计一个只有要打印的数据项的表格,然后通过css来控制元素的位置和字体等格式。也可以结合 2.2.2 的描述将不需要打印的部分隐藏,这样更便于你的打印预览调试。

2.4 iframe打印
如果你的打印格式比较复杂,在现有页面通过上边介绍的方式实现起来比较麻烦,那就干脆使用iframe打印吧。那样你只需要提前画好一个页面,在要打印的时候使用js将内容或者模板页面路径传给iframe即可。

代码如下:
window.frames[‘printFrm’].location.href = “页面路径”;
setTimeout(“printAction()”,“1000”);//为防止页面未加载完就打印,延迟一秒
function printAction(){
window.frames[‘printFrm’].focus();
window.frames[‘printFrm’].print();
}

如果不希望iframe被看到,就像下边这样,将高度设置为0吧

当然,如果需要自己来控制页边距、页眉、页脚等,可以先按 1.6 中描述方式进行设置。

WEB打印如何设置默认为"仅选定打印框架"?
function printAction(){
window.frames[‘printFrm’].focus();
window.frames[‘printFrm’].print();
}

2.5 修改浏览器打印设置
在打印的时候,你可能希望由自己来控制页边距、页眉、页脚等。可以按如下方式,在打印前进行相应的设置(注:由于使用了ActiveXObject,需要进行相应的浏览器安全设置,将浏览器安全设置中有关“ActiveX控件和插件”下的相关限制放开,当然,这样做不是很安全。可以将系统访问地址设置为“受信任的站点”,在“受信任的站点”的自定义级别中放开相应限制,这就比较妥当了。)。

function setPrint(){
var hkey_root,hkey_path,hkey_key;
hkey_root=“HKEY_CURRENT_USER”;
hkey_path="\Software\Microsoft\Internet Explorer\PageSetup\";
//设置网页打印的页眉页脚为空
try{
var RegWsh = new ActiveXObject(“WScript.Shell”);
//设置页眉为空
hkey_key=“header” ;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"");
//设置页脚为空
hkey_key=“footer”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"");//设置下页边距(0)
hkey_key=“margin_bottom”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”); //设置左页边距(0)
hkey_key=“margin_left”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”);
//设置右页边距(0)
hkey_key=“margin_right”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”);
//设置上页边距(0)
hkey_key=“margin_top”;
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,“0”);
}catch(e){
alert(‘请将本系统地址加入"受信任的站点",否则打印格式可能会不正确!’);
}
}

2.6 需要分页的地方加上一行代码:

  1. Activex 控件件打印
    如果控件无法弹出生效,可能是IE的安全策略的问题。
    可以修改IE的ActiveX 的安全项
    或者如下代码写到程序中。
    try{
    var WshShell=new ActiveXObject(“WScript.Shell”);

         //添加信任站点(http://127.0.0.1)  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\","");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\:Range","127.0.0.1");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD");  //修改IE ActiveX安全设置: 1本地Intranet区域  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1001","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1004","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1200","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1201","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\1405","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\\2201","0","REG_DWORD");  //修改IE ActiveX安全设置:2受信任的站点区域  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1001","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1004","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1200","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1201","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1405","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\2201","0","REG_DWORD");  //修改IE ActiveX安全设置:3Internet区域  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1001","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1004","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1200","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1201","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1405","0","REG_DWORD");  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\2201","0","REG_DWORD");  //禁用Winxp弹出窗口阻止程序  WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\New Windows\\PopupMgr","no");  }catch(e){     //alert("不允许ActiveX控件");     }
    

网页打印和ActiveX控件打印相关推荐

  1. 在HTML网页中使用ActiveX控件

    From: http://blog.163.com/haizai219@126/blog/static/4441255520097264447968/ 1. 摘要: 在企业应用中,为了实现一些特殊的功 ...

  2. 网页加载ActiveX控件

    我在做网页加载在ActiveX控件需要按一下步骤进行: 1.管理员权限打开终端:输入 regsvr32 xxx.ocx 2.regedit打开注册表,搜索xxx.ocx对应的uuid 3.编写测试ht ...

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

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

  4. 使用ActiveX控件开发网页常见的问题

    1. 什么是ActiveX 控件? Microsoft® ActiveX™ 控件是由软件提供商开发的可重用的软件组件.使用 ActiveX控件,可以很快地在网址.台式应用程序.以及开发工具中加入特殊的 ...

  5. C#开发Activex控件--与JavaScript的互调

    实现了ActiveX控件之后,在网页上的使用方式一般为: <object id="grid" classid="clsid:9661B223-6188-4849-B ...

  6. Asp.net中开发使用ActiveX控件

    从网上看来一篇网页中使用ActiveX的文章,正好用到.整理了一下以作备用 一 使控件实现 IObjectSafety 接口 1. 从 Visual Basic 6.0 光盘获取 OLE 自动化类型库 ...

  7. ActiveX 控件

    ActiveX 控件 2007-05-06 16:26 01 什么是 ActiveX 控件?     Microsoft ActiveX 控件是由软件提供商开发的可重用的软件组件.使用 ActiveX ...

  8. 编写ActiveX控件及其打包方法

    1.ActiveX控件概述 ActiveX控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在Windows操作系统以OCX结尾的文件,OCX代表"对象链接 ...

  9. activex控件有什么用_你知道怎样用Excel打印「条形码」吗?

    除了专业的条码打印机设备,可以打印条码.其实在Excel中也可以轻松打印各种条形码,而且设置非常简单,下面我们来看看如何用Excel来打印[条形码]? Step1:在Excel选项中将[开发工具]添加 ...

  10. js中TSC打印机在IE浏览器使用ActiveX控件实现打印

    1.需要注册TSC打印机的两个扩展程序TSCLIB.dll和TSCActiveX.dll,将这两个文件放到C:\Windows\SysWOW64中,然后进入cmd命令窗口,执行 regsvr32 C: ...

最新文章

  1. c语言自动生成版本号,单片机C程序自动产生并增加版本号
  2. 【 数字信号处理 】定点数的表示之定点数的字长问题
  3. 【分享】VRRP不懂不行
  4. 线条边框简笔画图片大全_儿童简笔画画大全人物
  5. 快递扫地机器人被损坏_手机动一动,全屋扫干净:石头T4扫地机器人体验记
  6. 前端遇到瓶颈怎么办?我来告诉你
  7. Ubuntu 20.04开机自启脚本(亲测)
  8. 10个你必须知道的jQueryMobile代码片段
  9. 计算机科学导论第五版第二章答案,《计算机科学导论》课后习题答案
  10. LiveGBS国标GB/T28181流媒体平台华为IPC设备GB35114配置接入说明
  11. Latex的一些排版技巧
  12. 手把手教你用Python网络爬虫+自动化来创建一位属于你自己的虚拟女票(附源码)...
  13. 何为挂载(mount)?
  14. 实用干货 !这才是职场最全实用建议
  15. JavaSE + bluecove 蓝牙连接
  16. 测试平台(一)为什么要搭建测试平台?
  17. 汽车牌照的排序与查询
  18. 用这4步完成一个有理有据的LOGO 设计
  19. 准备搬家,送所有书籍!
  20. 纯Windows API打造西门子移动网程控交换机人机终端(曾经最有成就感的作品)

热门文章

  1. eclipse字体大小调整
  2. 李秋豪计算机系统,CS:APP3e 深入理解计算机系统_3e Y86-64模拟器指南
  3. 纯JS实现简易扫雷小游戏网页项目
  4. python decimal模块_实例详解Python模块decimal
  5. 常用的远程连接Linux工具有哪些??
  6. 低代码快速实现跟进提醒
  7. 【翻译】PDF格式详解
  8. URL传递参数长度限制
  9. OpenCV图像处理----图像的二值化
  10. 一键查看MTALAB支持的字体