也谈WEB打印(二):简单的分析一下IE的打印原理并实现

也谈WEB打印(二):简单的分析一下IE的打印原理并实现简单的打

时间:2009-05-10 13:24 来源:未知 作者:admin 点击: <script src="/plus/count.php?view=yes&aid=66&mid=1" type="text/javascript"></script> 12次
在《 也谈 WEB 打印( - ):目前的几种方式及我们的任务 》 中,分析了一下当前 Web 打印的几种方式以及我们所遇到的问题,并提出了我们的要求,本文简单的分析一下 IE 的打印原理,并实现简单的打印和预览功能。 首先,我们介绍一下 IE 架构: IExplore.ex
       在《 也谈WEB打印(-):目前的几种方式及我们的任务 中,分析了一下当前Web 打印的几种方式以及我们所遇到的问题,并提出了我们的要求,本文简单的分析一下IE 的打印原理,并实现简单的打印和预览功能。
   
首先,我们介绍一下 IE 架构:
    

IExplore.exe位于最上层,他是一个很小的应用程序,当IE装载的时候他就被实例化。该可执行程序使用IE的各种组件来执行导航,历史记录维护,收藏夹维护,HTML解析和渲染等,同时为独立的浏览器提供工具栏和框架。IExplorer.exeShdocvw.dll 组件的直接宿主。

Shdocvw.dll依次寄宿Mshtml.dll,当有其他的活动文档组件(例如MS Office应用),当用户导航到这些特定的文档的时候,可以就地装入浏览器。Shdocvw.dll 提供这些和导航联系在一起的功能:就地链接、收藏夹和历史记录管理、PICS支持。该动态链接库也向其宿主暴露了一些接口,以允许这些宿主可以把他当作ActiveX控件而分别寄宿。

Shdocvw.dll中有一个接口叫做IWebBrowser2,我们所见到的IE,其实基本上就是对该接口的一个包装。他有一个很重要的成员函数“ExecWB”,其原型如下:

HRESULT ExecWB(      
    OLECMDID cmdID,
    OLECMDEXECOPT cmdexecopt,
    VARIANT *pvaIn,
    VARIANT *pvaOut
);

通过给这个函数的cmdIDcmdexecopt参数指定适当的值,我们几乎可以做能够IE界面上所做的所有事情。下面举例说明如何在js中调用该函数:

html页面中加入如下语句:
      <OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>
      <input type=”button” value=”直接打印

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值