如何用JavaScript打印Web页面

事实上IE已经为我们内嵌了WebBrowser控件,已经能够很好的支持我们常用的打印功能了。通过该控件的功能调用,用户可以将当前的Html页面输出到打印机上,用户只需要将要打印的数据组织成Html页面,然后调用WebBrowser的打印功能就可以很好的实现所见即所得的打印功能。不过这种打印存在的缺点就是打印精度不够,如果需要精确定位的打印或套打建议还是使用专用的打印控件实现。下面我们就来讨论如何用WebBrowser打印控件来实现通用报表的打印。

同其他控件一样,首先我们需要在页面中嵌入WebBrowser控件,不过由于该控件是IE浏览器自带的,支持浏览器默认安全设置,因此避免了安全性设置的麻烦。对于IE7及以上安全性要求更高的浏览器,您或许还是需要自定义IE的安全性级别。

<object ID='WB' STYLE="DISPLAY: NONE;" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>

下面就是该控件涉及打印的功能调用,用户可以在JavaScrip中调用:

  • document.all.WB.ExecWB(6,1); //打印,打印当前页面
  • document.all.WB.ExecWB(7,1); //打印预览
  • document.all.WB.ExecWB(8,1); //打印设置,调出系统打印设置对话框

 

首先生成要打印的HTML页面,调整好打印样式,再在Script中调用上面的打印函数,您要的报表就被打印出来了。当然关于打印样式这里还有一些技巧。

<style media=print>  /* media=print 声明该样式对打印有效 */
    .Noprint {display:none;} /* 声明了该样式的元素将不会被打印 */
    .PageBreak {page-break-after: always;} /* 分页标志,在需要分页的地方插入具有该样式的元素,将自动分页 */
</style>

还有一个不方便的问题是IE浏览器默认会添加页眉和页脚,这在实际应用中是不需要的,因此我们需要在浏览器中将页眉页脚清空,在页面设置对话框中清空页眉页脚即可。还有另一种方法是用VB Script修改本地注册表清除页眉页脚信息。下面是从网络中摘抄的具有该功能的脚本:

<script language="VBScript">
  dim hkey_root,hkey_path,hkey_key 
  hkey_root="HKEY_CURRENT_USER" 
  hkey_path="/Software/Microsoft/Internet Explorer/PageSetup" 

  '//设置网页打印的页眉页脚为空 
  function pagesetup_null() 
    on error resume next 
    Set RegWsh = CreateObject("WScript.Shell") 
    hkey_key="/header"   
    RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" 
    hkey_key="/footer" 
    RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" 
  end function

  '//设置网页打印的页眉页脚为默认值 
  function pagesetup_default() 
    on error resume next 
    Set RegWsh = CreateObject("WScript.Shell") 
    hkey_key="/header"   
    RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P" 
    hkey_key="/footer" 
    RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d" 
  end function 
</script>

这是一个利用WebBrowser实现的报表打印的示例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值