随着Web应用技术的不断兴起,基于B/S结构的Web应用开发逐渐成为软件开发商和用户应用开发模式的主流。这种架构的优点非常明显,跨平台、易于维护和发布,客户端简便、易学易用。但是由于浏览器本身打印功能的局限,从而给Web应用打印开发者带来了很多困难。
    与传统的C/S结构的桌面应用程序相比,B/S结构的应用很难借用很多传统的报表工具管理排版打印,或直接驱动打印机输出指定格式的数据。所以,如何在WEB环境下,精确控制打印的格式和位置,如何只进行一次开发(即同一应用)可以支持不同品牌和种类的打印机,实现同样的输出效果,一直是很多软件开发商头痛不已的问题。许多开发商在这个方面投入了大量的人力和物力,结果都是延长了开发周期,也得不到比较满意的效果。实际上Web打印业已成为Web应用项目开发的瓶颈。下面就当前Web应用中打印的常见解决方法作一个汇总和分析。页面打印方式
1.利用浏览器进行页面打印
   这种方法实质上是利用了浏览器自带的打印功能,开发人员只需要设计好页面,直接利用浏览器的打印菜单输出就可以了。因而实现起来最为简单,无须针对对打印机编程,但是问题也是最多的。如:
   不能精确排版;
   不能精确分页;
   不能连续打印;
   不能准确对齐边边距及打印文字
   不支持套打功能。2.使用浏览器控件+JavaScript
   这种方法实际上是浏览器打印功能菜单的一种程序调用,与打印功能菜单没什么两样,只不过可以让用户不用去点菜单,而是采用Javascript编程在网页中通过对按钮或链接的调用操控浏览器控件来实现打印操作。这种方式与应用的集成有了提高,但是对打印的控制没有任何帮助。控件打印方式
1.自定义ActiveX控件
   这种方案是通过下载ActiveX控件,生成的页面会显示到ActiveX控件中,可以实现精确的打印控制。缺点是首次使用控件一般需要下载注册,运行时可能会与浏览器的安全设置冲突,增加了终端用户使用的复杂度。另外,ActiveX控件与应用页面风格不一致,会破坏用户界面的整体效果。最主要的问题是,表单排版的格式一般由程序控制,会给应用的维护和升级带来很多修改的工作量。2.Java Applet打印方式
   使用Java Applet来控制打印输出,非常类似于控件方式,可以做到精确分页和排版,也是很多Java应用开发商常用的方法。然而,Applet很依赖客户端的JRE版本,而且安全上也有一些隐忧。采用这种方式打印,需要从服务器端下载Applet到本地,Applet再与后台服务器传递数据,生成打印表单,效率比较低;而且扩展能力差,几乎对每个应用都要定制开发。导出文件方式
    这种方式是将页面导出生成DOC、XLS或PDF文件,也可以实现基于WEB的精确打印。文件方式需要浏览器客户端安装支持相应文件的应用程序,如Word,Excel,或PDF Reader等。浏览器嵌入相应文件控件显示文件,并利用控件上工具栏的打印按钮或菜单栏上的打印项操作打印输出。这种方式的主要缺点是其一要用程序实现打印内容以及排版;其二与应用的集成度差;其三不支持套打功能。模板化打印方式
    这种方式通常需要借用第三方工具来实现。实现过程包括步骤一采用第三方工具进行打印模板的设计(主要针对打印内容的版面、样式以及静态的内容);步骤二在应用中集成数据接口,实现动态打印数据的传递。这种方式具有比较强的排版能力,能够实现精确打印(尤其是套打),打印效果和应用的集成性都很好。而且相对开发效率较高,对开发人员要求不高,打印开发和维护都很简易。这种方式是国外行业应用中最普遍采用的方式,已成为Web应用中打印的标准方式。在国内一些主要行业应用中也开始使用这种方式。采用这种方式需要借助于第三方工具,而第三方工具的优劣,对这种打印方式的使用效果有直接的影响。
Turbo ePrinting打印解决之道
    Turbo ePrinting采用的是模板化打印方式。由北京锐易特软件技术有限公司的多位技术专家,凭借他们在国外多年的技术沉淀和国内外的行业应用经验,潜心研发出的一款基于国外先进、标准的Web应用打印技术的专业级Web应用打印软件。
Turbo ePrinting在排版打印的实现上,底层集成了当前应用最广泛的Adobe Acrobat的内核技术,不但在功能上具备了Acrobat强大的排版和打印能力,而且在应用的集成上提供了更开放和标准的接口,开发和维护都极其简易。轻松实现完美的打印效果(尤其对套打来说)。
下表是Turbo ePrinting和现有打印方式的性能对照表
   Turbo ePrinting
    (模板化打印)页面打印 控件打印 导出文件打印
实现难度 低 低 高 高
排版能力 强 差 差 一般
套打能力 强 不支持 不支持 一般
精确排版 好 差 一般 差
精确分页 好 差 一般 差
连续打印 支持 不支持 支持 支持
应用集成 
简易程度 高 一般 低 低
应用集成
标准化  好 差 差 差
应用风格
一致性 高 一般 低 低
维护难度 小 高 一般 高
开发效率 高 差 一般 差
开发人员
要求 低 高 高 高
开发成本 低 高 一般 高
安全级别 高 低 低 高
限定打印
机(套打)否 是 是 否