利用WebBrowser实现Web打印的分析

转载 2007年10月12日 15:01:00

利用WebBrowser实现Web打印的分析

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();

 

WPF中WebBrowser的使用方法及分析

基础知识WebBrowser类 承载并在HTML文档间导航。在WPF托管代码和HTML脚本间启用互操作性。 WebBrowser.Navigate方法(Uri) 异步导航到位于指定Uri处的文档...
  • wangshubo1989
  • wangshubo1989
  • 2015年08月07日 15:51
  • 22142

C# WebBrowser页面与WinForm交互技巧

 话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrowser这个ActiveX控件了。这个类如果仅仅作为一个和IE一模一样浏览器,那就太没意思了(还不如直接用I...
  • snakorse
  • snakorse
  • 2014年05月02日 21:33
  • 2173

【.Net码农】修改WebBrowser控件的内核解决方案

http://www.cnblogs.com/sung/p/3391264.html 修改WebBrowser控件的内核解决方案   首先说一下原理 ...
  • CrackLibby
  • CrackLibby
  • 2015年10月19日 11:52
  • 4618

利用WebBrowser控件实现百度自动搜索

更多精彩内容,请见:http://www.16boke.com (1)新建一个MFC对话框项目 (2)对话框中添加WebBrower控件,添加方法:点击菜单栏工具->选择工具箱项->在弹出的选择工具箱...
  • one_in_one
  • one_in_one
  • 2014年05月20日 16:02
  • 11639

用WebBrowser实现HTML界面的应用

这一篇将继续讨论在使用delphi进行普通应用程序开发的时候,WebBrowser的具体应用,主要是针对使用其进行HTML界面开发的,这也是一篇我在网上找到的资料,大家如要转载,请尊重原作者的知识产权...
  • u012043539
  • u012043539
  • 2014年07月02日 14:28
  • 1860

Web页面实现打印功能

核心的代码:window.print()具体的实现如下:
  • SunMoonJP
  • SunMoonJP
  • 2017年03月14日 14:42
  • 590

java web实现打印功能

直接在网上上进行打印,目前我知道有三种,好吧我承认其实就一种。 1直接右键打印,不好的地方就是如果你有iframe在里面的话其他iframe会一起打印出来。 2用js函数window.print进...
  • cdxiaodai
  • cdxiaodai
  • 2013年07月16日 15:43
  • 2007

JS实现Web中指定内容的保存与打印功能

背景 首先,说说文章的背景。最近手中的一个项目,由于需求中要求提供Web界面的打印功能,当然如果没有打印机,还可以提供保存到本地。项目组长把这个“小任务”分给了我。本着努力为组长分忧解难的思想,领...
  • happylee6688
  • happylee6688
  • 2014年06月11日 16:35
  • 16713

web应用票据打印实现(一)

web应用浏览器端票据打印实现 许多web应用的开发中都会涉及到票据打印的功能。常用的Web打印实现的方式有: 1.浏览器打印接口 调用window.print()方法,调用打印机功能打印当前窗...
  • ape_goku
  • ape_goku
  • 2015年03月06日 10:11
  • 1830

WebBrowser控件表单(form)的自动填写和提交

http://www.sosuo8.com/article-2011/webbrowser-control-form-automatically-fill-and-submit.htm   话说有...
  • qq873113580
  • qq873113580
  • 2013年11月23日 21:16
  • 619
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用WebBrowser实现Web打印的分析
举报原因:
原因补充:

(最多只允许输入30个字)