实现Internet/Intranet 所见即所得的打印功能
随着Internet技术的飞速发展,越来越多的企业应用是基于Internet/Intranet。这样用户就可以通过浏览器(Browser)来完成各种数据的输入、查询功能。但由于目前浏览器的局限性,影响了它的一些应用。如HTML页面交互性不强、缺乏所见即所得的打印功能等。这些问题多是通过在网页中嵌入Java Applet、ActiveX等控件或是使用Plug-in来解决。本文介绍一种解决所见即所得的打印方案
一、浏览器的打印问题
浏览器无法实现所见即所得的打印功能,主要原因是由于HTML缺乏精确定位和绘图功能。标准HTML只能设置文本和图片等元素的基本显示属性。这样在打印时,不同的浏览器,不同的打印页面设置,都会导致打印结果不同。
二、主要解决方案
解决Internet/Intranet的所见即所得的功能方法很多,但不外乎三种方式:一种是在网页中使用所见即所得的打印控件,如使用Java Applet、ActiveX等;一种是编写自己的客户端所见即所得的打印程序或Plug-in,打印时浏览器从Web服务器上取得打印数据,再调用打印程序或Plug-in进行打印;第三种方式是利用第三方支持所见即所得打印功能的程序或Plug-in,打印时浏览器下载打印数据,再调用第三方程序或Plug-in进行打印。下面详细介绍着三种方案。
客户端使用自己编写的打印程序或Plug-in
工作方式:客户端要打印时,浏览器先从Web服务器上下载要打印的数据包,再调用自己编写的程序或Plug-in打印。可以做到一边下载,一边打印。
优点:打印数据包可以很小,适合各种带宽通讯。自己可以定义数据包格式,做到数据量最少。
缺点:客户端需要安装一次,开发设计工作量大,升级麻烦,增加了维护负担。不仅服务器端要编写生成打印数据的模块,客户端也要编写打印程序或Plug-in。升级时要为不仅服务器要升级,客户端的打印程序也要升级。
客户端使用第三方打印程序或Plug-in
工作方式:基本与第二种方式相同,所不同的是客户端用的是第三方程序或Plug-in。
优点:设计工作量少,升级方便,维护简单。由于使用的是第三方软件,设计工作主要集中在服务器方,升级时也只用升级服务器。
缺点:客户端需要安装一次,要求第三方软件开发商能提供程序的数据接口,程序的使用需要授权。
如果能找到一种操作简单,客户常用,支持所见即所得打印功能,且数据接口是开放的客户端软件是解决这个问题的最好方式。
PDF电子文档的免费阅读器-Adobe Acrobat(R) Reader-正是我们要找的客户端软件。大多数网民可能都安装有免费的Acrobat(R) Reader,用它可以查看PDF文件。它提供了所见即所得的打印功能,并且PDF文档格式是开放的。只要在客户端安装免费的PDF阅读器-Acrobat(R) Reader,在Web服务器端适时的把要打印的数据生成PDF文件,这样就比较完美的解决了网上的打印问题。
三、PDF的特点
PDF(Portable Document Format)是一种通用开放文档格式,它是由Adobe公司开发,适合网上使用的电子文档格式。它事实上已成为电子文档的标准。任何人都可利用免费提供的 Adobe Acrobat(R) Reader 软件随意地共享、查看、导航和打印 PDF 文件。免费的Adobe Acrobat(R) Reader可以随意分发。
PDF有以下特点:
PDF文档格式开放;
可实现PDF文档跨平台:PDF的阅读器(Acrobat(R) Reader)已有各种操作系统版本(Windows、Mac、Linux和各种Unix版),用不同的阅读器查看和打印的字体、颜色和大小都完全一样;
PDF文档内容可以压缩,可有效降低文档大小;
PDF文档是结构化的、面向对象的;
PDF文档还可嵌入图片、声音和视频图象,还提供书签、Web连接、跨文档连接等功能;
PDF的阅读器和Plug-in可免费提供。
四、PDF文档介绍
下面简单介绍PDF文档的基本知识
PDF的对象( Object )
PDF文档是由一系列基本对象构成,它们是:
布尔对象( Boolean ):只有两个值:True和False
数值对象( Number ):可是整数和浮点数
字符串和文字对象( String and Text ):是一串无符号的8位字节、写为一串字符格式的对象
名字对象( Name ):由”/”打头,类似于字符串的对象
数组对象( Array ):由任何对象组成的一组对象
字典对象( Dictionary ):由对象对组成的表。对象对的第一个对象是健( key ),一定是名字对象;第二个为值( Value ),可是任何对象
流对象( Stream ):类似于字符串,由一串字符组成。流对象一定是间接对象,它一般用在数据量较大时
空对象( null ):null
另外还有间接对象和对象引用。通过这些对象可以写出任何内容的文档
文件结构
PDF文件结构可分成四部分,如图
文件头( Header ):标识PDF文件的版本号
文件体( Body ):PDF文件的内容。它是由一系列对象(Object)组成,描述文件内容。
交叉引用表( Cross-reference table ):文件体中各个对象偏移字节地址表,表的格式是固定的。PDF阅读器通过交叉引用表,可以快速得到任何对象的数据。
文件尾( Trailer ):标识文件结束,提供目录(Catalog)对象的引用,并提供交叉引用表的偏移字节地址。PDF阅读器从
| 对此文章发表了评论 |
