☆趙建兵
(懷來(lái)縣教育研究室,河北懷來(lái) 075400)
目前,電子文庫(kù)在基于網(wǎng)絡(luò)的學(xué)術(shù)交流中得到了越來(lái)越多的應(yīng)用。百度文庫(kù)、豆丁網(wǎng)、道客巴巴等都采用了基于Flash格式的電子文檔來(lái)組建文庫(kù),通過眾多網(wǎng)友的上傳,形成了龐大的網(wǎng)絡(luò)資料庫(kù)。這些文檔多數(shù)是以作者上傳的Word文檔為基礎(chǔ),通過轉(zhuǎn)換工具將其轉(zhuǎn)換為Flash格式,然后,放置到網(wǎng)頁(yè)中進(jìn)行呈現(xiàn)。與傳統(tǒng)的網(wǎng)頁(yè)在線編輯器相比,上傳者無(wú)需進(jìn)行網(wǎng)頁(yè)排版,只需在本地進(jìn)行Word文檔編輯,一經(jīng)上傳并通過審核即可轉(zhuǎn)換為SWF,可以按照原始版式在網(wǎng)頁(yè)中顯示。
在中小學(xué)教育教學(xué)過程中,每天都會(huì)產(chǎn)生大量的教育類文章,例如:《學(xué)校工作安排》、《教師論文教案》、《學(xué)生習(xí)作規(guī)劃》等。如果能將這些文章像百度文庫(kù)那樣放置到校園網(wǎng)中,不僅便于文檔收集、組織,而且更便于文章瀏覽和交流,最重要的是降低了文檔上網(wǎng)的操作難度,師生也更積極上傳自己的好作品。
筆者經(jīng)過探索研究出一套簡(jiǎn)單可行的校園網(wǎng)文庫(kù)建立方法。下面就其方法進(jìn)行介紹。
如今的校園網(wǎng)軟件平臺(tái)基本都是基于數(shù)據(jù)庫(kù)的,文庫(kù)的建設(shè)也同樣需要數(shù)據(jù)庫(kù)。為了說(shuō)明的簡(jiǎn)便,本文選取Access進(jìn)行論述,而在實(shí)際應(yīng)用中,應(yīng)當(dāng)采用更專業(yè)的數(shù)據(jù)庫(kù)系統(tǒng),如:SQL Server;關(guān)于將Word文檔轉(zhuǎn)換為SWF文件需要轉(zhuǎn)換工具,本文則使用Print2Flash,此外,F(xiàn)lashPaper也可選擇;從數(shù)據(jù)庫(kù)讀取文檔數(shù)據(jù)并調(diào)用Print2Flash所需要的執(zhí)行程序,本文選擇使用C#語(yǔ)言進(jìn)行編寫。
Print2Flash軟件主要用于將Word文檔轉(zhuǎn)換為SWF格式的電子文檔(可以從http://print2flash.com/網(wǎng)站下載),下載后執(zhí)行安裝即可。為方便以后以命令行方式執(zhí)行程序,最好將軟件安裝在一個(gè)磁盤根目錄的單獨(dú)文件夾中,如:c:Print2Flash,不要將其安裝在Program Files等名稱帶有空格的文件夾中。軟件運(yùn)行分為幾個(gè)模式,本文將以命令行方式運(yùn)行需要Server模式,軟件在未注冊(cè)模式下即為Server模式,可以免費(fèi)試用一個(gè)月。安裝后,會(huì)在系統(tǒng)中添加一個(gè)名為Print2Flash Printer的虛擬打印機(jī)。
文庫(kù)數(shù)據(jù)庫(kù)采用Access創(chuàng)建,表結(jié)構(gòu)如下:
表1
本示例項(xiàng)目通過VS 2010采用ASP.NET創(chuàng)建,也可采用其他技術(shù)。網(wǎng)頁(yè)主要分為三個(gè)模塊,即第一個(gè)用于用戶上傳文件;第二個(gè)用于展示文章列表;第三個(gè)用于展示文章內(nèi)容。以下介紹中,代碼只列出關(guān)鍵部分,詳細(xì)代碼參見http://hljy.zjkedu.cn/wenku。
用戶通過此頁(yè)面將文檔上傳到服務(wù)器中,界面如圖1所示。
圖1
本例中使用了ASP.NET的File Up load控件進(jìn)行文件上傳,通過C#語(yǔ)言實(shí)現(xiàn)上傳功能,按鈕的單擊事件響應(yīng)代碼如下。
此頁(yè)面將已經(jīng)轉(zhuǎn)換的文檔從數(shù)據(jù)庫(kù)中讀出并以列表形式顯示出來(lái),界面如圖2所示。
圖2
本例中,使用了ASP.NET的ListView控件進(jìn)行文章列表展示,在頁(yè)面初始化事件中從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),并執(zhí)行以下函數(shù):
此頁(yè)面以Flash格式顯示文檔內(nèi)容,界面如圖3所示。
圖3
本例中,在頁(yè)面中插入了一個(gè)Flash對(duì)象并且在頁(yè)面初始化時(shí)從數(shù)據(jù)庫(kù)讀出文檔數(shù)據(jù),并傳遞給頁(yè)面類的全局變量Swf。
用戶上傳Word文檔以后,需要在服務(wù)器端使用Print2Flash工具將Word文檔轉(zhuǎn)化為Swf文件,這樣才能在網(wǎng)頁(yè)中顯示。最好的轉(zhuǎn)換方式是偵測(cè)數(shù)據(jù)庫(kù)的變化,當(dāng)有新紀(jì)錄產(chǎn)生時(shí)將自動(dòng)調(diào)用轉(zhuǎn)換程序,但需要的技術(shù)也相對(duì)比較復(fù)雜。本例中,采用轉(zhuǎn)換程序定時(shí)運(yùn)行的方案,使用C#語(yǔ)言開發(fā)一個(gè)控制臺(tái)程序,功能是從數(shù)據(jù)庫(kù)中查詢未經(jīng)轉(zhuǎn)換的記錄并且調(diào)用Print2Flash工具進(jìn)行轉(zhuǎn)換。開發(fā)完成后將其部署在Windows系統(tǒng)的計(jì)劃任務(wù)中,設(shè)置為在每天一個(gè)固定時(shí)刻自動(dòng)啟動(dòng),進(jìn)行新增文檔的自動(dòng)轉(zhuǎn)換。
控制臺(tái)程序調(diào)用Print2Flash需要使用Print2Flash的命令行運(yùn)行形式,命令格式為:
以上命令中的各部分最好使用路徑全名,如Print2Flash程序安裝在C盤Print2Flash文件夾中,要將D盤123文件夾下的test.doc文件轉(zhuǎn)換為swf并以test.swf命名存放到E盤456文件夾,其相應(yīng)的命令為:
調(diào)用Print2Flash的批處理程序從數(shù)據(jù)庫(kù)中讀取未進(jìn)行轉(zhuǎn)換的數(shù)據(jù)庫(kù)記錄,然后循環(huán)調(diào)用下列子程序以利用Print2Flash將DOC文檔轉(zhuǎn)換為SWF:
數(shù)據(jù)庫(kù)讀取記錄的主程序代碼并沒有在此列出,詳見http://hljy.zjkedu.cn/wenku。
程序編制完成后經(jīng)編譯得到exe可執(zhí)行文件。
系統(tǒng)開發(fā)完成以后,需要部署到Windows Server服務(wù)器上。部分網(wǎng)頁(yè)需要在IIS中做相關(guān)設(shè)置,并進(jìn)行批處理轉(zhuǎn)換程序后添加到系統(tǒng)任務(wù)計(jì)劃中,并按照步驟2所述的方法執(zhí)行Print2Flash的安裝。至此,文庫(kù)系統(tǒng)便可順利投入運(yùn)行。
[1]Imar Spaanjaars.ASP.NET3.5入門經(jīng)典[M].北京:清華大學(xué)出版社,2008,10.
[2]章立明.ASP.NET開發(fā)實(shí)戰(zhàn)范例寶典[M].北京:科學(xué)出版社,2010,9.