利用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=“打印“ οnclick=“exePrint();“>
<input type=“button“ name=“mPreview“ value=“打印预览“ οnclick=“exePreview();“>
<input type=“button“ name=“mSetting“ value=“打印设置“ οnclick=“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();
转载于:https://www.cnblogs.com/lonelyxmas/p/3788179.html
利用WebBrowser实现Web打印的分析相关推荐
- 利用ASP控制WEB打印代码方法集合
在用asp开发Web应用的时候,很多时候会用到打印,这里主要介绍了如何使用ASP控制Web的各种打印效果,它能够控制纵打.横打和页面边距等. 1.控制"纵打". "横打& ...
- WEB 打印的相关技术分析
文/谢康 做Web开发的人员一定都会面临一个共同的难题,那就是打印.的确,相对于Windows桌面应用程序来讲,Web应用程序的打印有种种限制,技术人员在项目开发过程中经常会遇到用户这样或那样的需求. ...
- 利用WebBrowser彻底解决Web打印问题
原文地址为: 利用WebBrowser彻底解决Web打印问题 利用WebBrowser彻底解决Web打印问题(包括后台打印) BS架构下的打印大家是怎么解决的呢,我最近作了一个项目正好负责这一块,不仅 ...
- IE内置的WebBrowser控件之--WEB打印
本文主要使用了IE内置的WebBrowser控件,无需用户下载和安装.WebBrowser有很多功能,除打印外的其他功能就不再赘述了,你所能用到的打印功能也几乎全部可以靠它完成,下面的问题就是如何使用 ...
- C#利用WebBrowser获取完整COOKIE介绍
摘要:使用WebBrowser控件获取网站的COOKIE有时候是不完整的,本文介绍WebBrowser控件获取网站的COOKIE不完整的原因,并提供一个利用WebBrowser获取完整COOKIE的示 ...
- 基于IE内核的一个WEB打印实现方案
工作需要实现一个基于IE内核的打印方案.本文将对于此方案的进行一个整体解析.由于此方案涉及自己以前未涉及的很多方面,在研究过程中学习了很多,因此在此也是做一次总结. 本文主要分为以下几个部分: (一) ...
- WEB打印-网页打印功能(带分页、可多页打印)
<html> <head> <title>Web打印</title> <meta http-equiv="Content-Type&qu ...
- oracle ERP凭证打印样式,Oracle ERP二次开发中特色鲜明的Web打印模式设计与实现
0背景随着宽带网络的普及和推广,基于浏览器的B/S结构的应用程序越来越多,客户端免安装.免配置.免维护.免升级;服务器端则采用多层模式,将表示层.商业逻辑层和数据层分开,极大的提髙了开发的效率和数据的 ...
- 符号执行:利用Angr进行简单CTF逆向分析
一.符号执行概括 简单的来说,符号执行就是在运行程序时,用符号来替代真实值.符号执行相较于真实值执行的优点在于,当使用真实值执行程序时,我们能够遍历的程序路径只有一条,而使用符号进行执行时,由于符号是 ...
最新文章
- 如何使用XenServer使用本地ISO镜像
- SQL Server创建索引
- 关于寻路算法的一些思考(2):Heuristics 函数
- Java并发编程的艺术(十)——Java中的锁(5)
- 22岁何同学自制硬核AirDesk!苹果都做不来的超大充电桌,稚晖君点赞
- Python的lambda函数
- tensorflow随笔——深度学习中GPU型号对比
- python面试题汇总_【Python环境】Python面试题汇总(一)
- win7 64位 系统安装mysql_5.7.19(msvce120 or DirectXRepair35.zip修复)
- Docker笔记(基础篇)
- 计算机潮流算法一般采用,计算机潮流计算
- 主题:讲解三层代码讲解(ActiveList的Action的工作方式)--第五课(*****) DATE:2004-06-03...
- html画布创建黑白象棋棋盘,canvas应用——中国象棋棋盘
- 原生JS调取PC端摄像头源码记录
- PC上阅读电子书的软件:Sumatra PDF和calibre
- 数字图像处理(入门篇)十四 透视变换
- 任务11 雷达与超声波感应灯(arduino程序)
- matlab怎么运行步进,有没有大侠知道怎么用matlab控制步进电机
- “三分天下”会有云米吗?
- 什么是HTML? HTML基础