在对页面进行设计时,为了便于浏览者以更加美观、合理的规格打印页面内容,本文章将对页面打印的一些相关设置进行详细说明。
用WebBrowser组件的execWB()方法进行打印
用WebBrowser组件的
WebBrowser组件是IE内置的浏览器控件,无须用户下载。其优点是客户独立完成打印目标文档,减轻服务器负荷;缺点是源文档的分析操作复杂,并且对源文档中要打印的内容进行约束。在使用WebBrowser组件时,首先要在<body>标记的下面用<object>...</object>标记声明WebBrowser组件。
代码如下:
<object id= Web" wdth=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
对页面进行打印,主要是通过WebBrowser组件的execWB()方法来实现的, 可以通过该方法来实现IE浏览器中菜单的相应功能。
语法:
WebBrowser.ExecWB(nCmdlD, nCmdExecOpt [, pvaln] [,pvaOut])
参数说明;
WebBrowser: 必选项。WebBrowser 控件的名称。
nCmdID:必选项。执行操作功能的命令。
nCmdExecOpt:必选项。执行相应的选项。
下面给出在IE浏览器中WebBrowser组件的execWB()方法的一些常用功能:
WebBrowser.execWB(1,1) //打开
WebBrowser.execWB(2,1) //关闭现在所有的IE窗口,并打开一个新窗口
WebBrowser.execWB(4,1) //保存页面
WebBrowser.execWB(6,1) //打印
WebBrowser.execWB(7,1) //打印浏览
WebBrowser.execWB(8,1) //打印页面设置
WebBrowser.execWB(10,1) //查看页面属性
WebBrowser.execWB(15,1) //撤销
WebBrowser.execWB(17,1) //全选
WebBrowser.execWB(22,1) //刷新
WebBrowser.execWB(45,1) //关闭窗口提示
打印指定框架中的内容
在打印页面时,有时只需要打印网页中的部分内容,可以将要打印的内容以框架的形式进行显示,欢后用window对象的print方法打印框架。
在打印页面中的框架时,首先需要为要打印的框架获得焦点,可以用内置变量parent来实现。
内置变量parent 指的是包含当前分割窗口的父窗口。也就是在一窗口内如果有分割窗口,而在其中一个分割窗口中又包含分割窗口,则第2层的分割窗口可以用parent变量引用包含它的父分割窗口。
语法:
parentmainFrame.fcous();
mainFrame: 表示框架的名称。
分页打印
在打印页面时,可以利用CSS样式中的page-break-before ( 在对象前分页)或page-break-after (在对象后分页) 属性进行分页打印,并利用<thead>和<tfoot>标记在打印的每个页面中都显示表头和表尾。
(1) thead标记
thead标记用于设置表格的表头。
(2) tfoot 标记
tfoot标记用于设置表格的表尾。
(3) page-break-after 属性
page-break-after属性在打印文档时发生作用,用于进行分页打印,但是对于<br>和<hr>标记不起作用。
语法:
page-break-after:auto | always | avoid | left | right | null
page-break-after属性中各参数的说明如表所示
| 参数 | 说明 |
|---|---|
| after | 设置对象后出现页分割符。设置为always时,始终在对象之后插入页分割符 |
| auto | 在对象之后自动插入页分割符(当对象前没有多余空间时插入分割符) |
| always | 始终在对象之后插入页分割符 |
| avoid | 未支持。避免在对象后面插入分割符 |
| left | 未支持。在对象后面插入页分割符,直到它到达一 个空白的左页边 |
| right | 未支持。在对象后面插入页分割符,直到它到达一个空白的右页边 |
| null | 空白字符串。取消了分割符设置 |
设置页眉和页脚
设置页眉/页脚主要是通过WshShell对象的相关方法实现的。WshShell对象是WSH(WSH是WindowsScripting Host的缩写,内嵌于Windows操作系统中的脚本语言工作环境)的内建对象,主要负责程序的本地运行、处理注册表、创建快捷方式、获取系统文件夹信息及处理环境变量等工作。WshShell 对象的相关方法如表所示。
| 方法 | 说明 |
|---|---|
| CreateShortcut() | 创建并返回WshShortcut对象 |
| ExpandEnvironmentStrings() | 扩展PROCESS环境变量并返回结果字符串 |
| Popup() | 显示包含指定消息的消息窗口 |
| RegDelete | 从注册表中删除指定的键或值 |
| RegRead() | 从注册表中返回指定的键或值 |
| RegWrite() | 在注册表中设置指定的键或值 |
| Run() | 创建新的进程,该进程用指定的窗口样式执行指定的命令 |
设置页眉页脚主要应用了Wshell对象的RegWrite()方法。该方法用于在注册表中设置指定的键或值。
语法:
WshShell.RegWritel(strName, anyValue [ ,strTypel)
参数说明:
strName: 用于指定注册表的键或值,若strName以一个反斜杠(在JavaScript中以“\\”)结束,则该方法设置键,否则设置值。strName参数必须以根键名HKEY_CURRENTU_USER、HKEY_LOCAL_MACHINE、HKEY_CLASSS_ROOT 、HKEY_LUSERS或以HKEY_CURRENT_CONFIG开头。
anyValue:用于指定注册表的键的值名或值名的值。当strType为REG_SZ或REC_EXPAND_SZ时,RegWrite()方法自动将anyValue转换为字符串:若strType为REG_DWORD,则anyValue被转换为整数;若strType为REG_BINARY,则anyValue必须是一个整数。
strType: 用于指定注册表的键或值的数据类型。RegWrite()方法 支持的数据类型为REG_SZ、REG_ EXPAND_SZ、REG_DWORD和REG_BINARY。若其他的数据类型被作为strType传递,RegWrite返回E INVALIDARG。