自从开发web程序以来,web打印就一直是困饶大家的大问题。基于web的打印,难度在于要将浏览器中呈现的html,精确地打印到票据中,而且能够实现对分页位置的控制。下面就IE浏览器所能采用的打印解决方案,来个汇总分析。
一、 浏览器的打印功能菜单
这种方案的优势是不需要对浏览器作任何扩充,是最简单的办法,但问题也最多,如:
1 不能精确分页。
浏览器一般是根据用户设置的页面大小,web页面的内容多少,来自行决定分页位置,程序员很难控制。会有页脚页眉干扰。
2 不能准确地控制边距及打印文字。
3 不能解决连续打印。
比如,不是仅打印一张票据,而是连续一次打印若干个票据。
二、 使用webbrowser控件+ javascript
这实际上,是浏览器打印功能菜单的一种程序调用,与打印功能菜单没什么两样。分页的问题仍然存在,只不过,可以让用户不用去点菜单,直接在网页中的一个按钮,或一个链接里面调用罢了。
三、 使用print css
这是一种最理想的实现web套打的方法。这种方法通过在html文档中,嵌入打印相关的css样式,来实现对html文档输出打印的控制,比如设置纸张大小,纸张纵横方向,打印边距,分页等。显而易见,这种方式成本小,不需要下载任何插件,而且跨平台性非常好。print css推出已经有些时日,但遗憾的是,至今没有一个厂商的浏览器很好地实现了这些标准,这使得程序员目前还不能利用print css进行实际的开发。关于打印css,参见:
http://css-discuss.incutio.com/?page=PrintStylesheets
四、 使用pdf文件
用这种方式,就是从服务器端下载一个pdf文件流,在IE中用adobe插件打开,然后用adobe的打印菜单进行打印,虽然这种方案,也能实现精确套打,但需要下载adobe插件。这是国外报表工具经常推荐的一种打印方法,但在pdf不那么普及的中国,这种方案不是最好选择。
五、 采用纯ActiveX
这种方案就是下载一个控件,票据的数据不再以html方式呈现,而是呈现在ActiveX中。这种方案的优点是打印的精确度高,分页的可控性好,但缺点也是很明显的,嵌入ActiveX控件破坏了web应用的整体html风格,且这样的控件比较大(一般超过1M,下载颇费时间)。
六、 采用Applet方式
采用Applet方式,分页或精确打印,都可以做到完美,但缺点也很明显,表现在:
1安装Applet成本巨大。需要下载十几M的文件。
Applet本身可能并不大,但运行Applet所需的jre一般至少10几M(jre1.4.2 , 15.45M)。用户需要极大的耐心,来进行打印。
2打印报表时,需要重新向服务器检索数据,效率低。
因为Applet方案,一般采用html方式呈现数据,打印时Applet必须向服务器检索同一张票据的数据,看上去,是打印了当前页的票据,实际上,Applet根本不会用当前html页的数据来打印,而是向服务器下载数据到Applet中来打印。也就是说,打印的话,必须两次请求,一次html呈现,一次用来打印。
七、 轻量级的ActiveX打印方式
轻量级的ActiveX打印方案的优点是:
1. 效率高;
可以直接打印指定的html文档,不必向后台再次提起请求。
2. 能做到精确打印,分页;
3. 功能丰富,
可以利用该控件,实现对当前票据文档的打印,预览,及多个html文档的连续打印。
4. 下载量小, ActiveX只有75K。
e表就是采用第七种方式来实现报表的打印。e表内置了一个用c++写的轻量级的ActiveX控件来精确地控制客户端的打印机。一举解决web打印问题。
详见: http://www.fcsoft.com.cn
--
http://community.csdn.net/Expert/topic/5380/5380531.xml?temp=.4599268
分享到:
相关推荐
4<br><br>0008 为程序设置版本和帮助信息 4<br><br>0009 设置Windows应用程序启动窗体 5<br><br>0010 设置Web应用程序起始页 5<br><br>0011 如何设置程序的出错窗口 5<br><br>0012 如何进行程序调试 6<br>...
│ ├─第25讲 自己做个浏览器<br>│ │ └─第26讲 发送Email<br>│ ├─第04部分 图形图象<br>│ │ ├─第27讲 一个时钟的实例<br>│ │ ├─第28讲 玩转三维空间<br>│ │ ├─第30讲 绘制液晶显示的数字<br>│...
│ ├─第25讲 自己做个浏览器<br>│ │ └─第26讲 发送Email<br>│ ├─第04部分 图形图象<br>│ │ ├─第27讲 一个时钟的实例<br>│ │ ├─第28讲 玩转三维空间<br>│ │ ├─第30讲 绘制液晶显示的数字<br>│...
比较 3<br>1.3.2 GUI图形界面与操作系统内核的彼<br> 此相对独立 4<br>1.3.3 Windows中的“网络邻居”概念 5<br>1.3.4 Windows中的注册表文件与文本文<br> 件的比较 6<br>1.3.5 域的概念 6<br>1.4 小结 7<br>第2章 ...
第1章 窗体与界面设计 1<br>1.1 菜单应用实例 2<br>实例001 带历史信息的菜单 2<br>实例002 菜单动态合并 3<br>实例003 像开始菜单一样漂亮的菜单 4<br>实例004 任务栏托盘菜单 5<br>实例005 可以拉伸...
176<br><br>18.4.3 提示键入y或n 177<br><br>18.4.4 case与命令参数传递 ...<br>18.5.2 打印字符串列表 181<br><br>18.5.3 对for循环使用ls命令 181<br><br>18.5.4 对for循环使用参数 182<br><br>18.5.5 使用for循环...
ReadTestquestion<br>7.5. 课程设计作业<br>第8章 日历记事本<br>8.1. 设计内容<br>8.2. 设计要求<br>8.3. 总体设计<br>8.4. 具体设计<br>8.4.1. 运行效果与程序发布<br>8.4.2. 主类CalendarPad<br>8.4.3. 记事本...
sed 用法介绍 89<br>10.1 sed怎样读取数据 89<br>10.2 调用sed 89<br>...<br>10.4.2 打印范围 91<br>10.4.3 打印模式 92<br>10.4.4 使用模式和行号进行查询 92<br>10.4.5 匹配元字符 92<br>10.4.6 显示整个文件 92...
报表打印<br> 案例1 报表打印预览<br> 案例2 报表的打印<br> 案例3 数据窗口的预览和打印实现 <br> 案例4 使用混合编程实现打印控制 <br> 案例5 使用PowerPrinter动态链接库实现打印扩展 <br> 案例6 数据窗口的打印 ...
实例3 人民币大写转换案例<br> 实例4 模拟俄罗斯方块游戏<br> 实例5 模拟联五子游戏<br> 第四章 系统文件处理<br> 实例1 文件资源管理器<br> 实例2 模拟IE浏览器<br> 实例3 一个具有查找打印功能的文本编译器<br><br...
<br>实例13 垃圾收集器算法控制与使用 <br>实例14 调用栈记录异常点 <br>实例15 使用C#异常的栈跟踪 <br>实例16 运行期间检测变量类型 <br>实例17 常用值类型的原型定义 <br>实例18 打印杨辉三角形 <br>实例19 比较...
<br>实例13 垃圾收集器算法控制与使用 <br>实例14 调用栈记录异常点 <br>实例15 使用C#异常的栈跟踪 <br>实例16 运行期间检测变量类型 <br>实例17 常用值类型的原型定义 <br>实例18 打印杨辉三角形 <br>实例19 比较...
<br><br>2007/6/1<br>Version 3.0.9 beta<br><br>Updates:<br>1) web.config中新增configfolder、functionfolder、skin三个必须目录的全局路径设置,以往旧版本如果要在不同级别子目录的页面调用控件都要单独设置...
<br> 普通报表,套打报表,财务报表,分组报表,主从报表,交叉报表,多行显示,自定义等WEB报表; <br><br>wintable报表设计器<br>------------------------------------<br>·界面类似于Excel软件,会Excel就会WinTable...
Java版精华区 <br>含java jsp及js等精华帖子合集<br>适合收藏 查询<br><br>序号 精华区主题 <br>--------------------------------<br> 1. [目录]Java教程 <br> 1. [目录]Java语言教程 <br> 2. [目录]来自java的传说...
在ASP.NET中实现Web打印功能是一项常见的需求,它允许用户直接从网页上打印内容而无需先下载文件。本文将深入探讨如何在ASP.NET环境中构建这一功能,并基于描述中的"print.html"文件,推测这是一个用于演示Web打印...
<br>使用本系统的好处:<br>(1) 公司从此可以告别手工开单,打印整齐漂亮的单据,这关系到公司的形象,也关系到公司的内部管理。<br>(2) 可以随时检查自己的经营情况,一切相关的查询和统计可以在瞬间完成。<br>...
<br>Adobe Photoshop CS2 Classroom in a Book <br><br>By Adobe Creative Team <br> <br>Publisher: Adobe Press <br>Pub Date: May 24, 2005 <br>ISBN: 0-321-32184-7 <br>Pages: 496 <br> <br>Photoshop is one ...
首先,我们需要理解Web打印的基本原理。在Web环境中,打印功能通常通过浏览器的打印API或者JavaScript库来实现,它可以将网页内容转化为适合打印的格式,并提供预览和实际打印的功能。对于Excel报表,我们通常需要将...