當前位置:工程項目OA系統(tǒng) > 泛普各地 > 上海OA系統(tǒng) > 上海OA快博
實現(xiàn)Web應用中的本地打印
實現(xiàn)Web應用中的本地打印
邱慶華
隨著Internet的飛速發(fā)展,企業(yè)紛紛開發(fā)基于Web的業(yè)務應用系統(tǒng)。為了實現(xiàn)業(yè)務系統(tǒng)與Internet的互聯(lián),許多企業(yè)將Web服務器和數(shù)據(jù)庫系統(tǒng)托管在IDC(互聯(lián)網數(shù)據(jù)中心),因而需要從托管在 IDC的服務器上提取業(yè)務數(shù)據(jù)在本地打印輸出。通??蛻舳藶g覽器只能打印簡單的HTML頁面,如何才能在瀏覽器上實現(xiàn)更為強大靈活的打印輸出功能呢?筆者采用相關的技術對瀏覽器的功能進行擴展,完成了比較復雜的數(shù)據(jù)打印任務,如收條、回執(zhí)等,下面具體介紹實現(xiàn)這種功能的方法。FileSystem組件使用簡介
FileSystem組件是一個ActiveX控件,存在于Windows平臺中(不管是Win98、Win2000,還是NT操作系統(tǒng)都包含該組件),它的CLSID是“0D43FE01-11CF-8940-00A0C9054228”。熟悉ASP編程方法的人可能有許多使用過FileSystem組件,一般情況下該組件用在服務器端,用來對文本文件、文件夾及驅動器進行訪問和控制??梢酝ㄟ^兩種方法創(chuàng)建FileSystem組件的對象實例:
1. 使用ASP內置的Server對象的方法Server.CreateObject來創(chuàng)建服務器端對象的實例。
2. 使用VBScript腳本函數(shù)CreateObject來創(chuàng)建客戶端對象的實例(也可以在服務器端使用該方法,但有時會出錯,一般不建議使用)。
FileSystem組件有如下一些方法可以對文本文件進行操作:
● CreateTextFile(Filename,[Overwrite if exists],[Unicode/ASCII])
//創(chuàng)建文本文件
● OpenTextFile(Filename,[Input/output mode],[Create if not exists],[Format])
//打開文本文件
● CopyFile(Filename1,F(xiàn)ilename2,[Overwrite])
//拷貝文本文件
● MoveFile(Filename1,F(xiàn)ilename2)
//移動文本文件
● DeleteFile(Filename)
//刪除文本文件
● GetFile(Filename)
//獲得文本文件
● FileExists(Filename)
//判斷文本文件是否存在
FileSystem組件對文件夾和驅動器也有和操作文本文件相類似的方法,在此不一一贅述。
FileSystem組件也可用于客戶端。如果采用創(chuàng)建FileSystem組件對象實例的第二種方法,就可以借助該組件對客戶端系統(tǒng)的文本文件、文件夾及驅動器進行訪問和控制。因為Windows系統(tǒng)帶有FileSystem組件,所以Windows平臺的客戶端不需要另外從遠程服務器上下載它,在安裝操作系統(tǒng)時會自動安裝這個組件并注冊;而對于其他平臺的客戶端,則需要安裝插件并下載FileSystem組件。
本地打印的實現(xiàn)機制
利用FileSystem組件實現(xiàn)本地打印的過程如圖1所示:
圖1 本地打印的實現(xiàn)原理
1. 客戶端向Web服務器發(fā)送數(shù)據(jù)請求;
2.
Web服務器根據(jù)業(yè)務處理邏輯與后臺數(shù)據(jù)庫進行交互,取得所需的數(shù)據(jù)并生成HTML頁面(其中有操作FileSystem組件對象的VBScript腳本),然后向客戶端瀏覽器發(fā)回HTML頁面;
3. 在客戶端運行腳本,取出HTML頁面中的數(shù)據(jù),建立與打印機的連接,并向打印機輸出打印數(shù)據(jù)。
前兩步與一般的Web應用沒有什么區(qū)別,需要說明的是第三步:
首先使用VBScript腳本函數(shù)CreateObject來創(chuàng)建FileSystem組件對象的實例;然后調用該實例創(chuàng)建文本文件的CreateTextFile方法,把打印端口LPT1或LPT2作為文件名參數(shù),并將可否覆蓋文件的參數(shù)設為TRUE,建立與打印機的連接;
最后調用獲得的打印機文本文件流實例的寫文本方法WriteLine,向打印機輸出打印的內容。
程序示例
程序代碼分為客戶端執(zhí)行的腳本和服務器端執(zhí)行的腳本,客戶端執(zhí)行的腳本如下:
<script
Language=VBScript>
function print_onclick
//打印函數(shù)
dim
label
label=document.printinfo.label.value
//獲得HTML頁面里的數(shù)據(jù)
set
objfs=CreateObject(“Scripting.FileSystemObject”)
//創(chuàng)建FileSystem組件對象的實例
set
objprinter=objfs.CreateTextFile
(“LPT1:”,true)
//建立與打印機的連接
objprinter.Writeline(“___________________”)
//輸出打印的內容
objprinter.Writeline(“|
|”)
objprinter.Writeline(“| 您打印的數(shù)據(jù)是:”&label&
“|”)
objprinter.Writeline(“|
|”)
objprinter.Writeline(“|________________|”)
objprinter.close
//斷開與打印機的連接
set
objprinter=nothing
set objfs=nothing
// 關閉FileSystem組件對象
end
function
</script>
服務器端執(zhí)行的腳本如下:
<%……
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)
……%>
//與數(shù)據(jù)庫進行交互
HTML頁面其他代碼:
<HTML>
……
<FORM
ID=printinfo NAME=“printinfo”>
<INPUT type=“button” value=“打印>>”
id=print name=print >
//調用打印函數(shù)
<INPUT type=hidden id=text1
name=label value=<%=……%>>
//保存服務器端傳來的數(shù)據(jù)
……
</HTML>
小 結
●
使用此方法實現(xiàn)打印任務之前,必須調整瀏覽器的安全設置。通過降低瀏覽器的Internet選項上的安全級別,對自己的站點充分信任,才可以通過瀏覽器執(zhí)行腳本訪問本機資源。
●
本方法可以實現(xiàn)在局域網的打印機上打印遠程服務器的數(shù)據(jù)。只需用局域網上的打印機注冊在本地的端口代替本地打印機端口作為創(chuàng)建文本文件的CreateTextFile方法的參數(shù)即可。
● 本方法可以實現(xiàn)根據(jù)用戶的要求選擇打印的寬度、高度、數(shù)量和內容,并可重復打印。
●
不需要編寫ActiveX控件即可以完成特定的打印功能,實現(xiàn)較為簡單。
●
不足之處是需要調整瀏覽器的安全設置,且不支持圖片和特殊字體的打印。
- 1上海OA能賺錢
- 2Web服務與二進制傳輸
- 3客戶支持中心的上海OA(By AMT 宋亮)
- 4上海OA和信息管理之間的聯(lián)系和區(qū)別(By AMT 宋亮)
- 5麥肯錫電子商務論叢-網絡社群的價值所在
- 6上海OA的功能框架
- 7全文檢索技術的深層剖析
- 8企業(yè)內部的知識市場
- 9知識轉移,是防范信息化風險的首要良方
- 10如何搭上Web服務這班車?
- 112002年Web Services技術論壇上海開幕
- 12《解構Web services系列之二》新興技術較勁 競爭白熱化
- 13泛普軟件(上海)OA軟件官方網站的研究和分析
- 14“管理信息化熱點問題討論”之八:上海OA很好,但到底如何實現(xiàn)(by AMT 孔祥云 徐家?。?
- 15麥肯錫電子商務論叢-網絡訂價策略
- 16[理論] 上海OA的“平衡”性分析及其實施的七個支柱(夏敬華)
- 17Web服務中的信息安全:軟肋 or 機會?
- 18網絡服務也稱得上是一場革命
- 19上海OA管出企業(yè)"錢途"
- 20使用Visual Basic .NET訪問Google的Web服務
- 21IBM絕地大反攻(II):加強與微軟的合作
- 22Web技術、上海OA與高等教育(by AMT 劉宇 編譯)
- 23五大Web服務神話
- 24實施上海OA:把經驗和信息轉化為生產力(by AMT 仲英豪編譯)
- 25美公司推出下一代網絡服務工具包
- 26美政府吸取911教訓將眼光投向Web服務
- 27企業(yè)知識吸收能力的主要影響因素(劉常勇 謝洪明)
- 28Novell OneNet重拳出擊Web服務
- 29Check Point加強Web服務的安全性
- 30統(tǒng)計分析Web服務器日志
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓