关于web在线打印
时间:2007-12-03 来源:ztfstar
今天做到一个关于在线打印的问题,随便找了一个打印代码,应用上后发现打印的页面为整个WEB页面而不是希望打印的框架内内容,一时不知如何解决。
<a onClick=document.all.WebBrowser.ExecWB(6,1)>
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT> 一开始在document.all上做文章,后来经过查阅后对document.all有了详细的了解,document.all是JS中专门为IE定义的一个变量数组,他可已使用页面内所有元素(页面内的一个可以赋予ID或name的HTML标记叫一个元素,比如BODY TR TD等).所以了解document.all的作用是为了定义到这个object控件,至于保存功能实际上完全是这个控件实现的,那这个控件都能实现那些功能,经过查找资料对这个控件有了了解。 8856F961-340A-11D0-A96B-00C04FD705A2 WebBrowser.ExecWB 实现的实际上就相当于IE上的各个功能按钮。 ebBrowser.ExecWB nCmdID, nCmdExecOpt, [pvaIn], [pvaOut]
(a).nCmdID
OLECMDID_OPEN = 1,
OLECMDID_NEW = 2,
OLECMDID_SAVE = 3,
OLECMDID_SAVEAS = 4,
OLECMDID_SAVECOPYAS = 5,
OLECMDID_PRINT = 6,
OLECMDID_PRINTPREVIEW = 7,
OLECMDID_PAGESETUP = 8,
OLECMDID_SPELL = 9,
OLECMDID_PROPERTIES = 10,
OLECMDID_CUT = 11,
OLECMDID_COPY = 12,
OLECMDID_PASTE = 13,
OLECMDID_PASTESPECIAL = 14,
OLECMDID_UNDO = 15,
OLECMDID_REDO = 16,
OLECMDID_SELECTALL = 17,
OLECMDID_CLEARSELECTION = 18,
OLECMDID_ZOOM = 19,
OLECMDID_GETZOOMRANGE = 20
OLECMDID_UPDATECOMMANDS = 21
OLECMDID_REFRESH = 22
OLECMDID_STOP = 23
OLECMDID_HIDETOOLBARS = 24
OLECMDID_SETPROGRESSMAX = 25
OLECMDID_SETPROGRESSPOS = 26
OLECMDID_SETPROGRESSTEXT = 27
OLECMDID_SETTITLE = 28
OLECMDID_SETDOWNLOADSTATE = 29
OLECMDID_STOPDOWNLOAD = 30
上面的关键词都可以在浏览器的菜单里面找到对应的选项﹐大家一看就明白的﹗
(b).nCmdExecOpt
OLECMDEXECOPT_DODEFAULT = 0,
OLECMDEXECOPT_PROMPTUSER = 1,
LECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3
对于这个参数﹐一般来说﹐选1就可以了。 这是调用IE的”另存为”功能的示例﹕ <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<A href="javascript:WebBrowser.ExecWB(4,1);">Save-存储</A> ______________________________________________________________________________________________
答2:
OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=WebBrowser width=0></OBJECT>
<table><tr><td>
<input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开>
</td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(2,1)
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=打印>不会弹出打印机 窗口</td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览 ></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=查看页面属性 ></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(15,1) type=button value=撤销></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭窗体无提示 ></td></tr>
<tr><td><input type=button value=刷新 name=refresh onclick="window.location.reload()">
</td></tr> 明确了这个后,发现从这个控件也无法解决我希望的功能,那怎么样才能在点击打印按钮时打印需要的内容而不是整个WEB页面呢。实际上方法还是有的。
我们首先用一个表格定义页面空间。
如上我们实际需要打印的页面是ID2这个TR表,在按打印按钮时我们调用一个执行打印的函数print() //javascript <OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT> 这样就解决了。另外就是对页面格式的控制,可以使用这段VBSCRIPT的代码将就使用。不过需要用户对本控件使用放行。
如果不希望这么麻烦,那上面的WebBrowser.ExecWB(7.1)进行预览打印也可以用户自行设置格式,不过使用代码的目的当然是为了统一格式。内容写的简洁,不知道写清楚没。
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT> 一开始在document.all上做文章,后来经过查阅后对document.all有了详细的了解,document.all是JS中专门为IE定义的一个变量数组,他可已使用页面内所有元素(页面内的一个可以赋予ID或name的HTML标记叫一个元素,比如BODY TR TD等).所以了解document.all的作用是为了定义到这个object控件,至于保存功能实际上完全是这个控件实现的,那这个控件都能实现那些功能,经过查找资料对这个控件有了了解。 8856F961-340A-11D0-A96B-00C04FD705A2 WebBrowser.ExecWB 实现的实际上就相当于IE上的各个功能按钮。 ebBrowser.ExecWB nCmdID, nCmdExecOpt, [pvaIn], [pvaOut]
(a).nCmdID
OLECMDID_OPEN = 1,
OLECMDID_NEW = 2,
OLECMDID_SAVE = 3,
OLECMDID_SAVEAS = 4,
OLECMDID_SAVECOPYAS = 5,
OLECMDID_PRINT = 6,
OLECMDID_PRINTPREVIEW = 7,
OLECMDID_PAGESETUP = 8,
OLECMDID_SPELL = 9,
OLECMDID_PROPERTIES = 10,
OLECMDID_CUT = 11,
OLECMDID_COPY = 12,
OLECMDID_PASTE = 13,
OLECMDID_PASTESPECIAL = 14,
OLECMDID_UNDO = 15,
OLECMDID_REDO = 16,
OLECMDID_SELECTALL = 17,
OLECMDID_CLEARSELECTION = 18,
OLECMDID_ZOOM = 19,
OLECMDID_GETZOOMRANGE = 20
OLECMDID_UPDATECOMMANDS = 21
OLECMDID_REFRESH = 22
OLECMDID_STOP = 23
OLECMDID_HIDETOOLBARS = 24
OLECMDID_SETPROGRESSMAX = 25
OLECMDID_SETPROGRESSPOS = 26
OLECMDID_SETPROGRESSTEXT = 27
OLECMDID_SETTITLE = 28
OLECMDID_SETDOWNLOADSTATE = 29
OLECMDID_STOPDOWNLOAD = 30
上面的关键词都可以在浏览器的菜单里面找到对应的选项﹐大家一看就明白的﹗
(b).nCmdExecOpt
OLECMDEXECOPT_DODEFAULT = 0,
OLECMDEXECOPT_PROMPTUSER = 1,
LECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3
对于这个参数﹐一般来说﹐选1就可以了。 这是调用IE的”另存为”功能的示例﹕ <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<A href="javascript:WebBrowser.ExecWB(4,1);">Save-存储</A> ______________________________________________________________________________________________
答2:
OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=WebBrowser width=0></OBJECT>
<table><tr><td>
<input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开>
</td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(2,1)
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=打印>不会弹出打印机 窗口</td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览 ></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=查看页面属性 ></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(15,1) type=button value=撤销></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新></td></tr>
<tr><td><input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭窗体无提示 ></td></tr>
<tr><td><input type=button value=刷新 name=refresh onclick="window.location.reload()">
</td></tr> 明确了这个后,发现从这个控件也无法解决我希望的功能,那怎么样才能在点击打印按钮时打印需要的内容而不是整个WEB页面呢。实际上方法还是有的。
我们首先用一个表格定义页面空间。
id=id1 标题 |
id=id2 需要打印的页面 |
id=id3 打印按钮 打印预览按钮 |
如上我们实际需要打印的页面是ID2这个TR表,在按打印按钮时我们调用一个执行打印的函数print() //javascript <OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT> 这样就解决了。另外就是对页面格式的控制,可以使用这段VBSCRIPT的代码将就使用。不过需要用户对本控件使用放行。
如果不希望这么麻烦,那上面的WebBrowser.ExecWB(7.1)进行预览打印也可以用户自行设置格式,不过使用代码的目的当然是为了统一格式。内容写的简洁,不知道写清楚没。
相关阅读 更多 +