频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> asp教程 -> 巧用FileSystem组件实现WEB应用中的本地特定打印

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

作者:未知  来源:转载  发布时间:2005-7-20 11:42:02  发布人:acx

减小字体 增大字体

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、使用Vb&#115cript脚本函数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组件实现本地端特定打印的过程如图所示:
<IMG SRC="http://www.computerworld.com.cn/htm/app/aprog/01_9_14_5.jpg" border=0>
1、客户端向WEB服务器发送数据请求;
2、WEB服务器根据业务处理逻辑与后台数据库进行交互,取得所需数据形成HTML页面,并附带有FileSystem组件对象的VB&#115cript脚本,向客户端浏览器发回HTML页面;
3、在客户端运行脚本,脚本取得HTML页面构件的数据,建立与打印机的连接,向打印机输出打印数据。
前两步与一般的WEB应用没有什么区别,需要说明的是第三步:首先使用Vb&#115cript脚本函数CreateObject来创建FileSystem组件对象的实例;然后调用该实例创建文本文件的CreateTextFile方法,把打印端口LPT1或LPT2作为文件名参数,并将可覆盖文件参数设为TRUE,建立与打印机的连接;调用获得的打印机文本文件流实例的写文本方法WriteLine向打印机输出打印的内容。 <br>4、程序示例 <br>客户端脚本: <br>&lt;&#115cript Language=VB&#115cript&gt; <br>function print_onclick //打印函数 <br>dim label <br>label=document.printinfo.label.value //获得HTML页面的数据 <br>set objfs=CreateObject("&#115cripting.FileSystemObject") //创建FileSystem组件对象的实例 <br>set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立与打印机的连接 <br>objprinter.Writeline("__________________________________") //输出打印的内容 <br>objprinter.Writeline("| |") <br>objprinter.Writeline("| 您打印的数据是:"&amp;label&amp; " |”) <br>objprinter.Writeline("| |") <br>objprinter.Writeline("|_________________________________|") <br>objprinter.close //断开与打印机的连接 <br>set objprinter=nothing <br>set objfs=nothing // 关闭FileSystem组件对象 <br>end function <br>&lt;/&#115cript&gt; <br>服务器端脚本: <br>&lt;%……… <br>set conn=server.CreateObject ("adodb.connection") <br>conn.Open "DSN=name;UID=XXXX;PWD=XXXX;" <br>set rs=server.CreateObject("adodb.recordset") <br>rs.Open(“select ……”),conn,1,1 <br>……….%&gt; //与数据库进行交互 <br>HTML页面编码: <br>&lt;HTML&gt; <br>……… <br>&lt;FORM ID=printinfo NAME="printinfo" &gt; <br>&lt;INPUT type="button" value="打印&gt;&gt;" id=print name=print &gt; //调用打印函数 <br>&lt;INPUT type=hidden id=text1 name=label value=&lt;%=………%&gt;&gt; //保存服务器端传来的数据 <br>……… <br>&lt;/HTML&gt; <br>5、说明及结论 <br>1、使用此方法实现打印任务之前,必须调节浏览器的安全设置;在Internet选项上安全级别降低,对自己的站点充分信任,可以通过浏览器执行脚本访问本机资源。 <br>2、本方法可以实现在局域网的打印机上打印远程服务器的数据,只须用局域网上打印机注册在本地的端口代替本地打印机端口作为创建文本文件的CreateTextFile方法的参数即可。 <br>3、本方法可以实现根据用户选择打印的宽度、高度和数量及内容,并可重复打印。 <br>4、不需要编写ActiveX控件即可以完成特定的打印功能,实现较为简单。 <br>5、不足之处是需要调节浏览器的安全设置,且不支持图片和特殊字体的打印。<br></div> <div></div> </div><div id="Message" class="Message"></div></font></div> <script type="text/javascript"> document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n本篇文章来源于 中国建站之家 原文链接:"+location.href; clipboardData.setData("text", text); } }, 100 ) } </script> <br> <a href="javascript:window.open('http://shuqian.qq.com/post?from=3&title='+encodeURIComponent(document.title)+'&uri='+encodeURIComponent(document.location.href)+'&jumpback=2&noui=1','favit','width=930,height=470,left=50,top=50,toolbar=no,menubar=no,location=no,scrollbars=yes,status=yes,resizable=yes');void(0)" style="text-decoration:none;color:#155da5;display:block;background:url('http://shuqian.qq.com/img/add.gif') no-repeat 0px 0px;height:23px;width:300px;padding:2px 2px 0px 20px;font-size:14px;">将本文收藏到QQ书签与更多好友分享</a> <div></div> </td> <table width="575" border="0" cellpadding="0" cellspacing="0"> <tr> </tr> <tr> <td align="right" height=25 bgcolor=#F7F7F7 > <script language=javascript src=/wz/sg.JS></script> [<a href=javascript:window.print()>打 印</a>] </tr> </table> <table width="575" border="0" cellpadding="0" cellspacing="0"> <tr> </tr> <tr> <td align="right" height=25 bgcolor=#F7F7F7 style="display:block;padding:0px 10px"> <font color=#000000>[<script language=JavaScript src="/Article/Hits.Asp?ArticleID=5834"></script>]</font> [<a href="javascript:history.go(-1)">返回上一页</a>] [<a href="/user/favorite.asp?action=add&topic=巧用FileSystem组件实现WEB应用中的本地特定打印">收 藏</a>]</td> </tr> <tr> <table width="575" border="0" cellpadding="0" cellspacing="0"> <tr> </tr> <tr> <td style="display:block;padding:0px 10px"><div><font color=#000000>上一篇文章:</font><a href=/Article/10/130/2005/200507205833.html>一个老个写的无组件上传</a></div><div><font color=#000000>下一篇文章:</font><font color=#000000><a href=/Article/10/130/2005/200507205835.html>从文本文件中读取信息并存储入数据库</a></font></div></td> </tr> </table> <table width="575" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="titlebg1">∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [<a href=/Article/comment.asp?ArticleID=5834 target=_blank>更多评论</a>...]</td> </tr> <tr valign="top"> <td></td> </tr> </table> </td> <td width="188" class="tableleft"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="titleback1">精彩推荐</td> </tr> <tr> <td height="260" valign="center" class="showbody1"><script language=javascript src=/ad/180601.js></script></td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="titleback1">热门文章</td> </tr> <tr> <td height="100" valign="top" class="showbody1"><table width="100%" border="0" cellpadding="2" cellspacing="0"><tr> <td class="showlist11">· <a href='/Article/10/138/2005/200507256912.html' class="showlist" title="注册码大全二">注册码大全二</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/10/138/2005/200507256914.html' class="showlist" title="注册码大全四">注册码大全四</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/10/138/2005/200507256911.html' class="showlist" title="注册码大全一">注册码大全一</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/196/197/2005/2005081911736.html' class="showlist" title="要10G免费网络硬盘的请进来!">要10G免费网络硬盘的请进..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/206/2007/2007030319347.html' class="showlist" title="通过google 赶快来赚美金">通过google 赶快来赚美金..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/10/138/2005/200507256919.html' class="showlist" title="注册码大全十">注册码大全十</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/14/253/2005/2005092114218.html' class="showlist" title="头像-qq头像(qq新头像)4">头像-qq头像(qq新头像)4..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/13/150/2006/2006022316028.html' class="showlist" title="让你轻松架设FTP服务器1">让你轻松架设FTP服务器1..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/10/138/2005/200507256913.html' class="showlist" title="注册码大全三">注册码大全三</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/14/244/2005/2005092014121.html' class="showlist" title="梦幻背景图片7">梦幻背景图片7</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/14/249/2005/2005092114181.html' class="showlist" title="卡通动物图片6">卡通动物图片6</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/14/269/2005/2005092114241.html' class="showlist" title="网页制作素材-按钮素材2">网页制作素材-按钮素材2..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/13/150/2006/2006022316032.html' class="showlist" title="让你轻松架设FTP服务器5">让你轻松架设FTP服务器5..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/14/244/2005/2005092014153.html' class="showlist" title="风景图片8">风景图片8</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/10/138/2005/200507256918.html' class="showlist" title="注册码大全九">注册码大全九</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/13/150/2006/2006022316029.html' class="showlist" title="让你轻松架设FTP服务器2">让你轻松架设FTP服务器2..</a></td> <td class="showlist12"></td> </tr></table></td> </tr> <tr> <td height="2" bgcolor="#FFFFFF"></td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="titleback1">关注此文读者还看过</td> </tr> <tr> <td height="100" valign="top" class="showbody1"><table width="100%" border="0" cellpadding="2" cellspacing="0"><tr> <td class="showlist11">· <a href='/Article/10/134/2005/2005091512600.html' target="_blank" class="showlist" title="DHTML工具栏,Web点击更精彩(3)--工具栏的行为">DHTML工具栏,Web点击更..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/13/149/2007/2007080321173.html' target="_blank" class="showlist" title="lINUX安装过程中Boot附加选项的含义是什么?">lINUX安装过程中Boot附加..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/10/130/2005/200507288398.html' target="_blank" class="showlist" title="使用asp+中的若干问题及解决方案">使用asp+中的若干问题及..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/190/194/2007/2007032119421.html' target="_blank" class="showlist" title="一名ADSENSE作弊者的经验之谈">一名ADSENSE作弊者的经验..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/11/141/2005/200507194102.html' target="_blank" class="showlist" title="FWMX2004 滤镜打造翠玉 (二)">FWMX2004 滤镜打造翠玉 ..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/10/135/2005/200507181120.html' target="_blank" class="showlist" title="用js封装的时间设置器">用js封装的时间设置器</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/223/291/2006/2006101217723.html' target="_blank" class="showlist" title="律师建网站替二奶讨说法 维权手段遭到社会质疑1">律师建网站替二奶讨说法..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/11/143/2005/200507192976.html' target="_blank" class="showlist" title="平面软件 Photoshop 发展历史 [4]">平面软件 Photoshop 发展..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/11/140/2005/2005081110738.html' target="_blank" class="showlist" title="TextFormat类">TextFormat类</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/223/291/2006/2006061616645.html' target="_blank" class="showlist" title="日企收购前程无忧 国际资本掌控中国人力资源库?">日企收购前程无忧 国际资..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/10/130/2005/200507192602.html' target="_blank" class="showlist" title="ASP中Cache技术的应用">ASP中Cache技术的应用</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/10/130/2005/2005091512781.html' target="_blank" class="showlist" title="分解质因数(asp&nbsp;分布递归法)">分解质因数(asp 分布递..</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/10/130/2005/200507277745.html' target="_blank" class="showlist" title="用ADO连接数据库的三种方法及其性能比较">用ADO连接数据库的三种方..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/10/130/2005/200507257056.html' target="_blank" class="showlist" title="使用ADSI创建虚拟目录">使用ADSI创建虚拟目录</a></td> <td class="showlist12"></td> </tr><tr> <td class="showlist11">· <a href='/Article/11/140/2005/200507181377.html' target="_blank" class="showlist" title="Flash透视技术之鸡蛋里面的世界(2)">Flash透视技术之鸡蛋里面..</a></td> <td class="showlist11"></td> </tr><tr> <td class="showlist12">· <a href='/Article/11/143/2005/200507193290.html' target="_blank" class="showlist" title="Photoshop打造美女残缺美(8)">Photoshop打造美女残缺美..</a></td> <td class="showlist12"></td> </tr></table></td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="titleback1">相关文章</td> </tr> <tr> <td height="100" valign="top" class="showbody1"></td> </tr> </table> </td> </tr> </table> <table width="778" border="0" align="center" cellpadding="0" cellspacing="0" class="tableborder"> <tr> <td height="3"></td> </tr> </table> <table width="778" border="0" align="center" cellpadding="0" cellspacing="0" class="tableborder"> <tr> <td height="23" align="right"> <table width="100%" border="0" cellspacing="0" class="tablebody8" cellpadding="0"> <tr> <td height="5"></td> </tr> <tr> <td height="23" align="right" valign="middle"><center><a href="/support/about.asp" class="navmenu2">关于本站</a> - <a href="/support/help.asp" class="navmenu2">网站帮助</a> - <a href="/support/advertise.asp" class="navmenu2">广告合作</a> - <a href="/support/declare.asp" class="navmenu2">下载声明</a> - <a href="/link/" target="_blank" class="navmenu2">友情连接</a> - <a href="/support/sitemap.asp" class="navmenu2">网站地图</a> - <a href="#" target="_blank" class="navmenu2">人才招聘</a> </tr> </table></td> </tr> <tr> <td height="1"></td> </tr> </table> <table width="778" border="0" align="center" cellpadding="0" cellspacing="0" class="tableborder"> <tr> <td height="60" align="center" class="tablebody1">网站合作、内容监督、商务咨询:QQ: 9576619 <br> Copyright ? 2005--2008 中国建站之家版权所有 <br><a href="http://www.miibeian.gov.cn" target="_blank" title="粤ICP备05092265号"><font color=#000000>粤ICP备05092265号 </font><br><script src='http://s6.cnzz.com/stat.php?id=44148&web_id=44148&show=pic' language='JavaScript' charset='gb2312'></script> </td> <script language="javascript" src="/inc/Std_StranJF.Js"></script> </table> </body> </html> <span id="naruco_ad_body" style="display:none;"> <script language=javascript src=/adfile/top.js></script> </span> <script type="text/javascript"> var naruco_ad = document.getElementById('naruco_ad'); if (naruco_ad != null) { naruco_ad.innerHTML=naruco_ad_body.innerHTML; naruco_ad_body.innerHTML=""; } </script>