本文主要使用了IE内置的WebBrowser控件,无需用户下载和安装。WebBrowser有很多功能,除打印外的其他功能就不再赘述了,你所能用到的打印功能也几乎全部可以靠它完成,下面的问题就是如何使用它了。先说显示后打印,后面说后台打印。
1、首先引入一个WebBrowser在需要打印的页面,可以直接添加以下代码到需要打印的页面,或者使用JavaScript在需要的时候临时添加
方法一:
<object id="WebBrowser" classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height="0" width="0">
</object>
</object>
方法二:
document.body.insertAdjacentHTML("beforeEnd", "<object id=\"WebBrowser\" width=0 height=0 \ classid=\"clsid: 8856F961-340A-11D0-A96B-00C04FD705A2\">");
2、页面设置和打印预览,如下所示,直接调用即可
方法一:
document.all.WebBrowser.ExecWB(6,6) 直接打印
document.all.WebBrowser.ExecWB(8,1) 页面设置
document.all.WebBrowser.ExecWB(7,1) 打印预览
document.all.WebBrowser.ExecWB(8,1) 页面设置
document.all.WebBrowser.ExecWB(7,1) 打印预览
方法二:
execScript("document.all.WebBrowser.ExecWB 7, 1","VBScript");
3、隐藏不打印的页面元素和分页。CSS 有个Media 属性,可以分开设置打印和显示的格式。
如 <style media="print" type="text/css"> …</style> 中间的格式将只在打印时起作用,不会影响显示界面。
<style media="print" type="text/css">
.Noprint
{
display: none;
}
.PageNext
{
page-break-after: always;
}
</style>
.Noprint
{
display: none;
}
.PageNext
{
page-break-after: always;
}
</style>
然后给不想打印的页面元素添加: class="Noprint" ,那就不会出现在打印和打印预览中了。
想分页的地方添加: <div class="PageNext"></div> 就可以了