使用JS打印网页内容及图片

由于要打印绘制生成的图片,于是选择使用JS去打印,方法及遇到的问题如下:

目前在chrome内核浏览器和IE实验成功,好用

指定部分内容打印

[javascript]  view plain  copy
  1. function doPrint() {  
  2.             bdhtml = window.document.body.innerHTML;  
  3.             sprnstr = "<!--startprint-->";  
  4.             eprnstr = "<!--endprint-->";  
  5.             prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);  
  6.             prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));  
  7.             window.document.body.innerHTML = prnhtml;  
  8.             if (getExplorer() == "IE") {  
  9.                 pagesetup_null();  
  10.             }  
  11.             window.print();  
  12.         }  
我的需求是打印图片,所以在我图片的部分

[html]  view plain  copy
  1. <!--startprint-->  
  2.                     <img id="image_ZKZ" runat="server" src="" />  
  3.                     <!--endprint-->  
增加了上述用于截断字符串的内容,这样通过 doPrint() 方法就能够截取到指定的图片内容了

这种情况下打印使用chrome是正常打印,并且没有页眉页脚,但是IE则仍然有,于是在 doPrint()   方法中使用了getExplorer()  方法来获取浏览器类型,以及pagesetup_null() 来去掉IE的页眉页脚,两个方法如下:

[javascript]  view plain  copy
  1. // 获取浏览器  
  2.         function getExplorer() {  
  3.             var explorer = window.navigator.userAgent;  
  4.             //ie   
  5.             if (explorer.indexOf("MSIE") >= 0) {  
  6.                 return "IE";  
  7.             }  
  8.                 //firefox   
  9.             else if (explorer.indexOf("Firefox") >= 0) {  
  10.                 return "Firefox";  
  11.             }  
  12.                 //Chrome  
  13.             else if (explorer.indexOf("Chrome") >= 0) {  
  14.                 return "Chrome";  
  15.             }  
  16.                 //Opera  
  17.             else if (explorer.indexOf("Opera") >= 0) {  
  18.                 return "Opera";  
  19.             }  
  20.                 //Safari  
  21.             else if (explorer.indexOf("Safari") >= 0) {  
  22.                 return "Safari";  
  23.             }  
  24.         }  

[javascript]  view plain  copy
  1. // IE设置去除页眉页脚  
  2.         function pagesetup_null() {  
  3.             var hkey_root, hkey_path, hkey_key;  
  4.             hkey_root = "HKEY_CURRENT_USER";  
  5.             hkey_path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";  
  6.             try {  
  7.                 var RegWsh = new ActiveXObject("WScript.Shell");  
  8.                 hkey_key = "header";  
  9.                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "");  
  10.                 hkey_key = "footer";  
  11.                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "");  
  12.             } catch (e) { }  
  13.         }  

但是这样打印IE的页边距比较宽,所以相对chrome有点被缩放的感觉,但是整体还可以没有很夸张
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值