999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Word的客戶端編輯器的實現

2008-04-12 00:00:00管恩京葛文慶鄭海峰宋亦剛
中國新技術新產品 2008年23期

摘要:編輯器是Web應用中常見的一個功能,但普通的在線編輯功能有限。因此,本文提出采用客戶端編輯器自動調用Microsoft Word軟件,利用Word強大的文字處理功能,解決編輯器中特殊字符處理、圖文混排等難題,并以試題庫管理系統中試題錄入為例,介紹了基于Word的客戶端編輯的技術實現。

關鍵詞:編輯器;Word;客戶端編輯器

1 引言

網絡應用中,編輯器是一個非常重要的功能。大家最常見的就是在線編輯器,它能實現簡單的文本錄入與編排。對于字符特殊、編排要求高的應用,如基于web的大型的公文流轉系統、試題庫管理系統等,常見的在線編輯器難以完成任務,往往采用客戶端編輯器來實現,但開發一套獨立的客戶端編輯器,功能往往有限,而Microsoft Word是目前最好的編輯工具,因此我們提出用Microsoft Word作為編輯器。但在IE中,Word不可能直接應用,需要一個載體來調用Word軟件。本文以題庫管理系統中試題的錄入、編輯及試卷的輸出為例分析基于Word的客戶端編輯器的實現。

2客戶端編輯器的結構[1][2]

由于題庫系統最終需要編輯包含數學公式等特殊符號的試題并存入題庫,并且試題還需要組合成試卷,并輸出word文檔,這些功能在普通的IE下用\"在線編輯器\"是無法實現的,因此需開發客戶端編輯器,用戶安裝客戶端編輯器后才能實現試題編輯/存儲、批量導入以及將試卷輸出為word文檔等功能。

客戶端編輯器在結構上主要包括三個部分,如下圖所示。一部分是實現客戶端編輯器所需的各項功能的Theoleditor;另一部分是IE瀏覽器的BHO,用來使IE瀏覽器在訪問服務器,進行編輯試題、批量導入和生成word試卷等功能時啟動Theoleditor;最后一部分位于服務器端,用來接受Theoleditor上傳的各種文件和信息。

3客戶端編輯器的實現[3][4][5]

客戶端編輯器(Theoleditor)實現的關鍵問題包括Theoleditor與BHO的通訊;Theoleditor中的word操作;Theoleditor與服務器的通訊及系統安全性。

3.1 客戶端編輯器與BHO的通訊

客戶端編輯器需要在IE訪問特定網址的時候啟動,而BHO和Theoleditor需要進行必要的通訊,如BHO需要知道Theoleditor的正確位置,Theoleditor需要知道IE瀏覽器訪問的服務器地址、端口等信息,需要知道調用的是錄入試題、批量導入還是輸出試卷等。這里BHO獲得Theoleditor.exe的路徑,可考慮安裝客戶端編輯器時將這部分的信息寫入windows注冊表中即可。同樣,Theoleditor所需的各種基本信息也可由BHO對IE地址信息解析,并寫入注冊表,再由Theoleditor運行后讀取。

用于實現讀取配置信息的類為CConfigInfo.java。該類將BHO寫入注冊表的信息讀取出來供其他部分的代碼使用。配置信息存放在注冊表的HKEY_LOCAL_MACHINE\\\\Software\\\\ThetiEditor下。該類中的CConfigInfo::CConfigInfo() 構造函數,負責讀取注冊表的HKEY_LOCAL_MACHINE\\\\Software\\\\ThetiEditor下的所有值的名稱和值的數據,并分別存入對應的字符串數組names 和values中。代碼實現如下:

CConfigInfo::CConfigInfo()

{

m_LoadOK=FALSE;

HKEY hKEY;//注冊表的鍵

LPCTSTR data_Set=\"Software\\\\ThetiEditor\";

DWORD type=REG_SZ,size=1024;

//打開注冊表

long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,hKEY));

if(ret0!=ERROR_SUCCESS)

{

AfxMessageBox(\"錯誤:無法打開有關的hKEY\");

return;

}

unsigned long valuenamemaxlen,valuemaxlen,valuecount;//鍵值長度/數量

::RegQueryInfoKey(hKEY,NULL,NULL,NULL,NULL,NULL,NULL,valuecount,valuenamemaxlen,valuemaxlen,NULL,NULL);//查詢注冊表下鍵值的數量/長度

unsigned int i;

for(i=0;i

char name[1024];

char value[1024];

type=REG_SZ;

size=1024;

if(::RegEnumValue(hKEY,i,name,size,0,type,NULL,NULL)!=ERROR_NO_MORE_ITEMS){

type=REG_SZ;

size=1024;

::RegQueryValueEx(hKEY,name,0,type,(BYTE*)value,size);

}

CString strname,strvalue;

strname.Format(\"%s\",name);//格式化鍵名

strvalue.Format(\"%s\",value);//格式化鍵值

names.Add(strname);

values.Add(strvalue);

}

::RegCloseKey(hKEY);

m_LoadOK=TRUE;

}

3.2 客戶端編輯器中的word操作

Theoleditor需要實現word文檔的打開、另存、文檔的拷貝、粘貼、向表格中插入數據、設定頁邊距、行距等功能。由于微軟的Office提供了Automation接口,Theoleditor可通過該接口調用word,實現各種所需的功能。具體的實現可首先通過word錄制宏,然后分析宏的結構,調用對應VC中的Word包裝類的功能。

用于實現word操作的類為WordOperator.java。以編輯試題為例,用到的主要方法有打開當前word文檔、將word文檔另存為html文件、保存當前word文檔、退出word等。

3.3 客戶端編輯器與服務器的通訊及系統安全性

Theoleditor和服務器之間需要通過通訊知道所編輯的是哪一個文檔,需要上傳文檔到服務器或從服務器下載文檔。另一方面,服務器上文檔的id不能通過明碼傳輸至客戶端,否則用戶將有可能通過分析該信息獲取服務器上的其他文件。這里采用服務器提供票據給BHO,BHO將票據傳遞給Theoleditor,然后Theoleditor通過該票據與服務器通訊,以上傳和下載對應的文檔,并保證系統的安全。票據信息主要包括兩部分,前面一部分是通過系統時間產生的隨機字符串,后一部分則是系統時間的毫秒數。

Theoleditor與服務器的通訊主要用到文件傳輸類CfileTransfer.java,包括上傳和下載文件。上傳文件的方法為CFileTransfer::uploadFile(CString serverip,CString uri,int port,CString filepath,CString type),包括服務器地址、通用資源標志符、本地文件保存的路徑以及文件的類型;下載文件的方法為CFileTransfer::downloadFile(CString url, CString filepath,CString fullfilename),包括下載指定url的文件,并將文件存儲在filepath下,文件名通過fullfilename傳遞回去。

4 結束語

IE是目前網絡中最廣泛的一種應用,Microsoft Word則在當前是占有巨大優勢的文字處理器,而基于Word的客戶端編輯器可以較好地將二者銜接,在普通IE下實現Word的自動調用,充分發揮其強大的文字處理功能。

參考文獻

[1]管恩京,陳靜.試題試卷庫系統的設計與實現.第十屆全球華人計算機教育應用會議論文集. 北京:清華大學出版社,2006

[2]管恩京.大學學科試題庫及其管理系統的研究與設計[碩士學位論文].北京:清華大學,2007.

[3]位元文化.精通視窗程序設計.西安:世界圖書出版西安公司,2000.5

[4]步行者工作室.Visual C++ 6.0高手速成.北京:兵器工業總公司,1999.6

[5]吳師通.Visual Basic 實用程序百例.北京:清華大學出版社,2000.5

主站蜘蛛池模板: 91偷拍一区| 亚洲精品在线影院| 久青草免费在线视频| 日本中文字幕久久网站| 久久精品亚洲专区| 国产精品偷伦在线观看| 国产精品七七在线播放| 黄色免费在线网址| 日韩精品一区二区三区视频免费看| 五月婷婷丁香综合| 色婷婷狠狠干| 久久天天躁狠狠躁夜夜2020一| 99re视频在线| 免费A级毛片无码免费视频| 网友自拍视频精品区| 国产超碰一区二区三区| 黄色福利在线| 色天天综合| 久久久精品国产SM调教网站| 尤物国产在线| 国产午夜看片| 久久这里只有精品国产99| 国产精品视频导航| 婷婷色中文网| 伊人久久婷婷五月综合97色| 免费在线播放毛片| 中日韩欧亚无码视频| 日韩天堂视频| 99999久久久久久亚洲| 毛片免费高清免费| 亚洲av无码片一区二区三区| 国产一级毛片网站| 日本午夜影院| 国产亚洲美日韩AV中文字幕无码成人| 久久一日本道色综合久久| 免费av一区二区三区在线| 亚洲日本中文字幕天堂网| 国产亚洲欧美日韩在线一区二区三区| 日韩一区二区三免费高清| 日本人又色又爽的视频| 久久一本精品久久久ー99| 亚洲第一天堂无码专区| 国产精品久线在线观看| 国产精品亚洲va在线观看| 在线观看精品国产入口| 亚洲av无码牛牛影视在线二区| 丝袜美女被出水视频一区| 亚洲资源站av无码网址| 欧美激情二区三区| 一级爆乳无码av| 国产在线麻豆波多野结衣| 亚洲欧美日韩综合二区三区| 中文字幕丝袜一区二区| 日韩国产亚洲一区二区在线观看| 一区二区三区精品视频在线观看| 日韩高清中文字幕| 永久免费av网站可以直接看的| 亚洲日韩日本中文在线| 亚洲午夜久久久精品电影院| 亚洲欧美日韩色图| 亚洲国语自产一区第二页| 91日本在线观看亚洲精品| 午夜日b视频| 亚洲欧洲自拍拍偷午夜色无码| 国产区在线观看视频| 日本三级欧美三级| 午夜日b视频| 欧美亚洲国产一区| 秋霞午夜国产精品成人片| 成人av专区精品无码国产 | 九九热精品在线视频| 亚洲色图综合在线| 亚洲欧美日韩另类在线一| 超碰91免费人妻| 日韩国产 在线| 强奷白丝美女在线观看| 精品国产电影久久九九| 一级做a爰片久久毛片毛片| 五月综合色婷婷| 全部免费毛片免费播放| 亚洲成a人片| 91精品国产麻豆国产自产在线|