现在的位置: 首页 > 综合 > 正文

IE 自带的打印组件,WebBrowser,简单的解决B/S项目的打印解决方案,分页打印,打印预览

2012年11月12日 ⁄ 综合 ⁄ 共 2244字 ⁄ 字号 评论关闭


 在使用下面的语句时最好Try{}catch(e){}一下以为5.5以上的IE才可以使用

以下的内容在IE6 7 上测试过 ok  FF下测试有问题

注意,以下的方法调用 在IE6下,可以加括号,在IE7下不能加括号

为了方便最好都不要加括号

  1. WebBrowser.ExecWB(1,1) 打开
  2. WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
  3. WebBrowser.ExecWB(4,1) 保存网页
  4. WebBrowser.ExecWB(6,1) 打印
  5. WebBrowser.ExecWB(7,1) 打印预览
  6. WebBrowser.ExecWB(8,1) 打印页面设置
  7. WebBrowser.ExecWB(10,1) 查看页面属性
  8. WebBrowser.ExecWB(15,1) 好像是撤销,有待确认
  9. WebBrowser.ExecWB(17,1) 全选
  10. WebBrowser.ExecWB(22,1) 刷新
  11. WebBrowser.ExecWB(45,1) 关闭窗体无提示

 

其中最后一项WebBrowser.ExecWB(45,1)可以有效解决IE7下,使用

WebBrowser.ExecWB(7,1)执行打印预览后返回到原窗口时,window.close()方法失效的问题。

  1. <style media="print" type="text/css"
  2. .Noprint{display:none;} 
  3. .PageNext{page-break-afteralways;} 
  4. </style>
    然后给不想打印的页面元素添加: class="Noprint" ,那就不会出现在打印和打印预览中了。
    想分页的地方添加:  <div class="PageNext></div>就可以了。


  1. <div class="PageNext">
  2. 打印的内容 第一页
  3. </div>
  4. <div class="PageNext">
  5. 打印的内容 第二页
  6. </div>
  7. <div class="PageNext">
  8. 打印的内容 第三页
  9. </div>

如果是预览则执行下面代码:

用临时窗口打开预览或打印的时候可以这样写

  1. WebBrowser.ExecWB(7,1); 
  2. window.opener=null
  3. window.close();

对于A4纸张,横打用920,竖打用640

  1. 1、自动换行: 
  2. <style type="text/css"> 
  3. .AutoNewline 
  4. word-break: break-all;/*必须*/ 
  5. </style> 
  6. <table> 
  7. <tr> 
  8. <td class="AutoNewline">自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行</td> 
  9. </tr> 
  10. </table> 
  11. 2、不换行: 
  12. <style type="text/css"> 
  13. .NoNewline 
  14. word-break: keep-all;/*必须*/ 
  15. </style> 
  16. <table> 
  17. <tr> 
  18. <td class="NoNewline">不换行不换行不换行不换行不换行不换行不换行不换行不换行不换行</td> 
  19. </tr> 
  20. </table> 
页眉页脚的设置
google了一把发现都是用vsscript写的例子 不过我学过vb 所以可以看懂哈,但这个不影响你使用的,以下是代码
  1. <script language="VBScript"> 
  2. dim hkey_root,hkey_path,hkey_key 
  3. hkey_root="HKEY_CURRENT_USER" 
  4. hkey_path="/Software/Microsoft/Internet Explorer/PageSetup" 
  5. '//设置网页打印的页眉页脚为空 
  6. function pagesetup_null() 
  7. on error resume next 
  8. Set RegWsh = CreateObject("WScript.Shell") 
  9. hkey_key="/header" 
  10. RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" 
  11. hkey_key="/footer" 
  12. RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"" 
  13. end function 
  14. '//设置网页打印的页眉页脚为默认值 
  15. function pagesetup_default() 
  16. on error resume next 
  17. Set RegWsh = CreateObject("WScript.Shell") 
  18. hkey_key="/header" 
  19. RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P" 
  20. hkey_key="/footer" 
  21. RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d" 
  22. end function 
  23. </script> 
页眉页脚的一些参数用法
窗口标题 &w
网页地址 (URL) &u
短日期格式(由"控制面板"中的"区域设置"指定) &d
长日期格式(由"控制面板"中的"区域设置"指定) &D
当前页码 &p
总页数 &P
文本右对齐(后跟 &b) &b
文字居中(&b&b 之间) &b&b

抱歉!评论已关闭.