- 浏览: 1341964 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (551)
- 计划 (4)
- java (115)
- oracle (60)
- ajax (3)
- javascript (64)
- 计算机操作技巧集 (11)
- 近期关注话题 (10)
- 随想 (13)
- html (6)
- struts (15)
- hibernate (16)
- spring (2)
- game (0)
- Eglish (10)
- DisplayTag (6)
- jsp (18)
- css (3)
- eclipse (3)
- 其他知识 (8)
- 备用1 (12)
- 备用2 (1)
- 笑话-放松心情 (9)
- 设计 (1)
- 设计模式 (1)
- 数据结构 (0)
- office办公软件 (5)
- webwork (0)
- tomcat (2)
- MySql (1)
- 我的链接资源 (5)
- xml (2)
- servlet (0)
- PHP (13)
- DOM (0)
- 网页画图vml,canvas (1)
- 协议 (2)
- 健康 (3)
- 书籍下载 (1)
- jbpm (1)
- EXT (1)
- 自考 (2)
- 报表 (4)
- 生活 (64)
- 操作系统基础知识 (2)
- 测试 (2)
- guice (1)
- google学习 (2)
- Erlang (1)
- LOG4J (2)
- wicket (1)
- 考研 (1)
- 法律 (1)
- 地震 (1)
- 易学-等等相关 (1)
- 音乐 (1)
- 建站 (4)
- 分享说 (3)
- 购物省钱 (0)
- linux (1)
最新评论
-
zenmshuo:
如果使用SpreadJS这一类的表格工具,应该能更好的实现这些 ...
js中excel的用法 -
hjhj2991708:
第一个已经使用不了
jar包查询网站 非常好用! -
jiangmeiwei:
...
中文乱码 我的总结 不断更新 -
gary_bu:
...
response.sendRedirect 中文乱码问题解决 -
hnez:
多谢指点,怎么调试也不通,原来我在<body>&l ...
ExtJs IE ownerDocument.createRange() 错误解决方案
WebBrowser是IE内置的浏览器控件,无需用户下载。本文档所讨论的是有关IE6.0版本的WebBrowser控件技术内容。其他版本的IE应该也支持。与其相关的技术要求有:打印文档的生成、页面设置、打印操作的实现等几个环节。本文以asp为例,但是他可以容易的移植到其他web技术中。
一、WebBrowser控件
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
二、WebBrowder控件的方法
//打印
WebBrowser1.ExecWB(6,1);
//打印设置
WebBrowser1.ExecWB(8,1);
//打印预览
WebBrowser1.ExecWB(7,1);
三、实现打印的设置,打印数据的生成,打印的预览,和打印。
实现打印的设置,打印数据的生成,打印的预览,和打印我一般这样做,假如查询结果在a.asp中,那么在a.asp中放置打印设置、打印预览、打印三个按钮。
单击打印设置按钮则在js中执行WebBrowser1.ExecWB(8,1),以打开打印设置窗口。
单击打印预览按钮则打开一个b.asp,在b.asp中重新生成打印数据,然后在b.asp中自动执行WebBrowser1.ExecWB(7,1),以打开用户预览界面。
单击打印按钮则也打开b.asp,在b.asp中重新生成打印数据,然后在b.asp中自动执行WebBrowser1.ExecWB(6,1),以自动打印数据。
四、代码
a.asp调用数据的程序就不给出了。只给出几个按钮的代码:
<input type=“button“ name=“mPrint“ value=“打印“ onclick=“exePrint();“>
<input type=“button“ name=“mPreview“ value=“打印预览“ onclick=“exePreview();“>
<input type=“button“ name=“mSetting“ value=“打印设置“ onclick=“exeSetting();“>
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
<script language='javascript'>
function exePrint()
{
liu= window.open('b.asp?do=1','_blank','left=2000,top=2000,fullscreen=3');
}
function exePreview()
{
window.open('b.asp?do=2','_blank','left=2000,top=2000,fullscreen=3');
}
function exeSetting()
{
WebBrowser.ExecWB(8,1);
}
</script>
代码中打印设置的代码很简单,大家很容易理解。打印预览和打印的按钮需要告诉b.asp我们将要执行的是打印还是打印预览。另外,还要将查询字符串传递过去。当然web高手可以尝试其他方法,以避免反复重服务器调数据,当然初学者只能通过多次查询,以牺牲性能来解决打印了。
假设本例中a.asp通过传递一个查询串打开了b.asp,则在b.asp中将重新载入数据。在这里载入数据后将数据显示在网页上需要知道每个页要显示多少条(PageSize)。显示的时候每显示PageSize条后,就要显示一个<p style='page-break-before:always;'> 这个语句相当于分页符,也就是当打印或者预览时遇到了这个分页符后会强制分页。一般我们可以这样:
<table>
???
</table>
<p style='page-break-before:always;'>
<table>
???
</table>
<p style='page-break-before:always;'>
……
<table>
???
</table>
<p style='page-break-before:always;'>
显示完数据后根据用户的的指令(判断参数do的值),来分别执行预览或者打印。
如果是预览则执行下面代码:
WebBrowser.ExecWB(7,1);
window.opener=null;
window.close();
如果是打印则执行:
WebBrowser.ExecWB(6,1);
window.opener=null;
window.close();
一、WebBrowser控件
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
二、WebBrowder控件的方法
//打印
WebBrowser1.ExecWB(6,1);
//打印设置
WebBrowser1.ExecWB(8,1);
//打印预览
WebBrowser1.ExecWB(7,1);
三、实现打印的设置,打印数据的生成,打印的预览,和打印。
实现打印的设置,打印数据的生成,打印的预览,和打印我一般这样做,假如查询结果在a.asp中,那么在a.asp中放置打印设置、打印预览、打印三个按钮。
单击打印设置按钮则在js中执行WebBrowser1.ExecWB(8,1),以打开打印设置窗口。
单击打印预览按钮则打开一个b.asp,在b.asp中重新生成打印数据,然后在b.asp中自动执行WebBrowser1.ExecWB(7,1),以打开用户预览界面。
单击打印按钮则也打开b.asp,在b.asp中重新生成打印数据,然后在b.asp中自动执行WebBrowser1.ExecWB(6,1),以自动打印数据。
四、代码
a.asp调用数据的程序就不给出了。只给出几个按钮的代码:
<input type=“button“ name=“mPrint“ value=“打印“ onclick=“exePrint();“>
<input type=“button“ name=“mPreview“ value=“打印预览“ onclick=“exePreview();“>
<input type=“button“ name=“mSetting“ value=“打印设置“ onclick=“exeSetting();“>
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
<script language='javascript'>
function exePrint()
{
liu= window.open('b.asp?do=1','_blank','left=2000,top=2000,fullscreen=3');
}
function exePreview()
{
window.open('b.asp?do=2','_blank','left=2000,top=2000,fullscreen=3');
}
function exeSetting()
{
WebBrowser.ExecWB(8,1);
}
</script>
代码中打印设置的代码很简单,大家很容易理解。打印预览和打印的按钮需要告诉b.asp我们将要执行的是打印还是打印预览。另外,还要将查询字符串传递过去。当然web高手可以尝试其他方法,以避免反复重服务器调数据,当然初学者只能通过多次查询,以牺牲性能来解决打印了。
假设本例中a.asp通过传递一个查询串打开了b.asp,则在b.asp中将重新载入数据。在这里载入数据后将数据显示在网页上需要知道每个页要显示多少条(PageSize)。显示的时候每显示PageSize条后,就要显示一个<p style='page-break-before:always;'> 这个语句相当于分页符,也就是当打印或者预览时遇到了这个分页符后会强制分页。一般我们可以这样:
<table>
???
</table>
<p style='page-break-before:always;'>
<table>
???
</table>
<p style='page-break-before:always;'>
……
<table>
???
</table>
<p style='page-break-before:always;'>
显示完数据后根据用户的的指令(判断参数do的值),来分别执行预览或者打印。
如果是预览则执行下面代码:
WebBrowser.ExecWB(7,1);
window.opener=null;
window.close();
如果是打印则执行:
WebBrowser.ExecWB(6,1);
window.opener=null;
window.close();
发表评论
-
给HTML增加自定义属性
2010-01-08 16:40 3136增加自定义属性 <input type="te ... -
ExtJs IE ownerDocument.createRange() 错误解决方案
2009-12-07 09:22 3762在开发ExtJs程序的过程中,遇到如下问题:在firefox中 ... -
js面向对象
2009-07-30 17:40 1049关于js 面向对象的优秀文章的连接 有困难,找猪八戒 htt ... -
javascript辅助方法--不断更新
2009-05-08 11:19 996有困难,找猪八戒 对js中的辅助方法进行收集,不断补充 /*得 ... -
javascript js 飘浮 图片 或者 文字
2009-03-25 19:18 2279本文引自http://www.webmasters-centr ... -
js去掉开头和结尾的空格 js trim
2009-03-24 10:07 7202/* * 去掉开头和结尾的space, tab, form ... -
js中excel的用法
2009-03-18 08:57 8489有困难,找猪八戒 转载自: http://hi.baidu.c ... -
js insertCell colspan
2009-03-12 14:37 4821转自:http://objectmix.com/javascr ... -
js IE关闭窗口
2009-01-15 20:08 1938参考文章: http://www.webdeveloper.c ... -
js客户端验证上传文件大小
2009-01-13 16:05 4768有困难,找猪八戒 function getFileSize(f ... -
偶然发现一个小工具,查看颜色
2008-12-30 13:15 1690偶然发现一个小工具,查看颜色 另外,再加上两个小工作:颜色和像 ... -
window.open 方法怪问题 参数失效
2008-10-31 18:12 2248window.open(URL,name,specs,repl ... -
一些浏览器的屏蔽功能
2008-10-30 18:23 1358http://www.putiancheng.com/tool ... -
一个好用的js树 梅花雪MzTreeView
2008-10-24 19:20 3741主要是速度特别快 用另外一个js树,要100秒,用这个,1秒 ... -
解决JavaScript页面刷新与弹出窗口问题
2008-10-11 09:45 1849解决JavaScript页面刷新与弹出窗口问题 原文:htt ... -
js 定位 光标 到输入框的 指定位置
2008-10-02 16:20 5747//从此处摘得 http://www.experts-exch ... -
js 正则表达式 从网上找的
2008-09-25 09:01 10141、//校验IP格式 function a(ip_addres ... -
Javascript: 两个列表框之间移动数据
2008-09-11 11:41 1758http://topic.csdn.net/t/2002052 ... -
未结束的字符串常量 中文引起
2008-08-02 11:37 6982因为外部js文件中包含 ... -
javascript 框架相关资源记录
2008-06-11 14:00 1099介绍jquery的 http://www.iteye.com/ ...
相关推荐
【利用WebBrowser彻底解决Web打印问题(包括后台打印) 】利用WebBrowser彻底解决Web打印问题(包括后台打印)BS架构下的打印大家是怎么解决的呢,我最近作了一个项目正好负责这一块,不仅要求打印页面的特定部分,...
有最基础 的关于拼接HTML然后输入打印的,也有里面关于分页的做法,主要是关于销售单,方便学习
利用IE内置打印控件IEWebBrowser进行打印.
12.4 应用JavaScript实现Web打印 功能 490 实例311 调用IE自身打印功能实现打印 490 实例312 用WebBrowser组件的execWB方法 进行打印 491 实例313 利用JavaScript获取焦点并且打印 框架中内容 492 实例314 智能放大...
web打印: 调用IE自身的打印功能 打印指定框架中的内容 利用WebBrowser进行打印 设置页眉页脚 利用CSS样式分页打印 套打邮寄产品单: 打印汇款单 打印快递单 打印信封 打印...
实例293 利用WebBrowser打印 462 实例294 设置页眉页脚 463 11.2 利用Word打印报表 465 实例295 将页面中的表格导出到Word并打印 465 实例296 打开指定的Word文档并打印 467 实例297 在JSP中利用Word自动...
实例248 利用transform分析数据 382 实例249 利用transform统计数据 383 8.18 函数查询 385 实例250 使用格式化函数转换查询条件的数据类型 385 实例251 在查询中使用字符串函数 387 实例252 在查询中...
22.1 Web打印 830 22.2 利用Word打印报表 833 22.3 利用Excel打印报表 838 22.4 应用WebBrowser+CSS套打邮寄 22.5 打印库存报表 844 22.6 高级报表 850 第6篇 综合应用篇 第23章 综合应用 862 23.1 在线投票系统 863...
22.1 Web打印 830 22.2 利用Word打印报表 833 22.3 利用Excel打印报表 838 22.4 应用WebBrowser+CSS套打邮寄 22.5 打印库存报表 844 22.6 高级报表 850 第6篇 综合应用篇 第23章 综合应用 862 23.1 在线投票系统 863...
Javascript小技巧一箩筐 事件源对象 event.srcElement.tagName event.srcElement.type ... 捕获释放 event.srcElement.setCapture();...event.srcElement.releaseCapture();... 根据鼠标获得元素: document....
实例293 利用WebBrowser打印 462 实例294 设置页眉页脚 463 11.2 利用Word打印报表 465 实例295 将页面中的表格导出到Word并打印 465 实例296 打开指定的Word文档并打印 467 实例297 在JSP中利用Word自动打印指定...
177.htm 判断一个文件是否在IE的缓存中 ◆ 178.htm 启动拨号网络中的连接 ◆ 179.htm 浅谈HTTP协议(二)--返回值 ◆ 180.htm 浅谈HTTP协议(一)--结构 ◆ 181.htm 如何利用 WebBrowser 控件...
主要在MzfHipsDlg中,程序分析进程数据、驱动数据、注册表数据从而实现主动防御。 超级下载 不过不是c++源码 1:综合FTP下载和HTTP(网络蚂蚁)(多线程). 2:FTP下载支持多个站点同时下载一个文件(同时支持断点续传). 3...
主要在MzfHipsDlg中,程序分析进程数据、驱动数据、注册表数据从而实现主动防御。 超级下载 不过不是c++源码 Notepad++ V5.6.8 源码! OA精灵代码 c++版 一套oa系统。 ocxdlgtest dll的一个实例。 OD反汇编引擎...