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




1、客户端向WEB服务器发送数据请求; 
2、WEB服务器根据业务处理逻辑与后台数据库进行交互,取得所需数据形成HTML页面,并附带有FileSystem组件对象的VBScript脚本,向客户端浏览器发回HTML页面; 
3、在客户端运行脚本,脚本取得HTML页面构件的数据,建立与打印机的连接,向打印机输出打印数据。 
前两步与一般的WEB应用没有什么区别,需要说明的是第三步:首先使用Vbscript脚本函数CreateObject来创建FileSystem组件对象的实例;然后调用该实例创建文本文件的CreateTextFile方法,把打印端口LPT1或LPT2作为文件名参数,并将可覆盖文件参数设为TRUE,建立与打印机的连接;调用获得的打印机文本文件流实例的写文本方法WriteLine向打印机输出打印的内容。 
4、程序示例 
客户端脚本: 
<script Language=VBScript> 
function print_onclick //打印函数 
dim label 
label=document.printinfo.label.value //获得HTML页面的数据 
set objfs=CreateObject("Scripting.FileSystemObject") //创建FileSystem组件对象的实例 
set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立与打印机的连接 
objprinter.Writeline("__________________________________") //输出打印的内容 
objprinter.Writeline("| |")  
objprinter.Writeline("| 您打印的数据是:"&label& " |”)  
objprinter.Writeline("| |") 
objprinter.Writeline("|_________________________________|")  
objprinter.close //断开与打印机的连接 
set objprinter=nothing  
set objfs=nothing // 关闭FileSystem组件对象 
end function 
</script> 
服务器端脚本: 
<%……… 
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页面编码: 
<HTML> 
……… 
<FORM ID=printinfo NAME="printinfo" > 
<INPUT type="button" value="打印>>" id=print name=print > //调用打印函数 
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据 
……… 
</HTML> 
5、说明及结论 
1、使用此方法实现打印任务之前,必须调节浏览器的安全设置;在Internet选项上安全级别降低,对自己的站点充分信任,可以通过浏览器执行脚本访问本机资源。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3207.html