LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

巧用FileSystem组件实现WEB应用中的本地特定打印

admin
2010年7月8日 1:7 本文热度 5919

1、引言
随着internet的飞速发展,许多企业都纷纷开发基于web的业务应用系统。一般情况下,基于web的业务应用都采用三层或三层以上的结构,前台即客户端是普通的web浏览器,中间业务逻辑应用层存放于web服务器上,由web服务器上的服务构件访问后台数据库。为了业务系统与internet的互联,web服务器和数据库系统均托管在idc(互联网数据中心),因而需要从托管在 idc的服务器上提取业务数据在本地打印输出。在客户端浏览器只能打印简单的html页面的情况下,要求更为强大灵活的打印输出功能;通过采用相关的技术对浏览器的功能进行扩展,能够完成更复杂的数据打印的任务,如收条、回执等。笔者曾经为一网络教育公司开发教育管理软件时采用filesystem组件实现在本地打印三联收款凭证和准考证等的功能。
2、filesystem组件使用简介
filesystem组件其实是一个activex控件,其存在于windows平台中(不管是win98、win2000,还是nt环境都包含该组件。),clsid:0d43fe01-11cf-8940-00a0c9054228。熟悉asp编程人可能都使用过filesystem组件,一般情况下该组件用在服务器端,用来对文本文件、文件夹及驱动器进行访问和控制。可以通过两种方法创建filesystem组件的对象实例:
1、使用asp的内置对象server的方法server.createobject来创建服务器端对象的实例。
2、使用vbscript脚本函数createobject来创建客户端对象的实例(也可以在服务器端用该方法,但有时会出错,一般不使用;)。
filesystem组件对文本文件进行操作有如下方法:
createtextfile(filename,[overwrite if exists],[unicode/ascii]) //创建文本文件
opentextfile(filename,[input/output mode],[create if not exists],[format]) //打开文本文件
copyfile(filename1,filename2,[overwrite]) //拷贝文本文件
movefile (filename1,filename2) //移动文本文件
deletefile (filename) //删除文本文件
getfile (filename) //获得文本文件
fileexists (filename) //判断文本文件是否存在
filesystem组件对文件夹和驱动器也有和文本文件相类似的方法,在此不一一赘述。
其实,filesystem组件也可使用于客户端,采用创建filesystem组件对象实例的第二种方法即可以使用该组件对客户端系统的文本文件、文件夹及驱动器进行访问和控制。因为微软平台带有filesystem组件,所以对于微软平台的客户端则不需要从远程服务器下载,其在安装操作系统时会自己安装并注册;而对于其他平台的客户端则须安装插件并下载filesystem组件。
3、本地端特定打印的实现机制
利用filesystem组件实现本地端特定打印的过程如图所示:
http://computerworld.com.cn/htm/app/aprog/01_9_14_5.jpg" border=0>
1、客户端向web服务器发送数据请求;
2、web服务器根据业务处理逻辑与后台数据库进行交互,取得所需数据形成html页面,并附带有filesystem组件对象的vbscript脚本,向客户端浏览器发回html页面;
3、在客户端运行脚本,脚本取得html页面构件的数据,建立与打印机的连接,向打印机输出打印数据。
前两步与一般的web应用没有什么区别,需要说明的是第三步:首先使用vbscript脚本函数createobject来创建filesystem组件对象的实例;然后调用该实例创建文本文件的createtextfile方法,把打印端口lpt1或lpt2作为文件名参数,并将可覆盖文件参数设为true,建立与打印机的连接;调用获得的打印机文本文件流实例的写文本方法writeline向打印机输出打印的内容。
4、程序示例
客户端脚本:

服务器端脚本:
<%………
set conn=server.createobject ("adodb.connection")
conn.open "dsn=name;uid=xxxx;pwd=xxxx;"
set rs=server.createobject("adodb.recordset")
rs.open(“select ……”),conn,1,1
……….%> //与数据库进行交互
html页面编码:

………


//调用打印函数
> //保存服务器端传来的数据
………

5、说明及结论
1、使用此方法实现打印任务之前,必须调节浏览器的安全设置;在internet选项上安全级别降低,对自己的站点充分信任,可以通过浏览器执行脚本访问本机资源。
2、本方法可以实现在局域网的打印机上打印远程服务器的数据,只须用局域网上打印机注册在本地的端口代替本地打印机端口作为创建文本文件的createtextfile方法的参数即可。
3、本方法可以实现根据用户选择打印的宽度、高度和数量及内容,并可重复打印。
4、不需要编写activex控件即可以完成特定的打印功能,实现较为简单。
5、不足之处是需要调节浏览器的安全设置,且不支持图片和特殊字体的打印。


该文章在 2010/7/8 1:07:56 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved