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

主站蜘蛛池模板: 亚洲久悠悠色悠在线播放| 久久综合九色综合97网| 国产精品青青| 9丨情侣偷在线精品国产| 69免费在线视频| 人人妻人人澡人人爽欧美一区 | 国产精品露脸视频| 亚洲AV无码一二区三区在线播放| 毛片视频网| 天天综合网色| 激情乱人伦| 婷五月综合| aa级毛片毛片免费观看久| 国产综合另类小说色区色噜噜 | 午夜a级毛片| 国产专区综合另类日韩一区| 色哟哟精品无码网站在线播放视频| 第一区免费在线观看| 亚洲二区视频| 欧美日本激情| 一级毛片免费观看不卡视频| 喷潮白浆直流在线播放| 国产制服丝袜91在线| 精品中文字幕一区在线| 国产亚洲视频中文字幕视频| 亚洲福利网址| 国产视频 第一页| 国产在线观看一区二区三区| 日韩a级毛片| 999精品视频在线| 99国产在线视频| 亚洲一区二区三区国产精品 | 人妻丰满熟妇啪啪| 久久亚洲国产最新网站| 国产69精品久久久久孕妇大杂乱 | 色婷婷狠狠干| 国产区在线观看视频| 国产成人久久777777| 亚欧成人无码AV在线播放| 亚亚洲乱码一二三四区| 亚洲日本在线免费观看| 国产91丝袜在线播放动漫 | 亚洲国产成人超福利久久精品| 久久亚洲国产一区二区| 日韩高清在线观看不卡一区二区 | 亚洲欧洲国产成人综合不卡| 无码AV高清毛片中国一级毛片| 国产浮力第一页永久地址| av在线人妻熟妇| 波多野结衣无码中文字幕在线观看一区二区 | 国产精品视频系列专区| 欧美在线视频不卡| 亚洲视频黄| 久久亚洲国产视频| 成年人免费国产视频| 精品久久777| 午夜无码一区二区三区| 天天色天天操综合网| 亚洲无码91视频| a天堂视频在线| 成年人国产网站| 国产成人精品高清不卡在线| 国产精品漂亮美女在线观看| 无码精品国产dvd在线观看9久| a色毛片免费视频| 国产精品乱偷免费视频| 国产黄在线观看| 青青青亚洲精品国产| 91视频99| 四虎影视无码永久免费观看| 狠狠操夜夜爽| av色爱 天堂网| 日韩成人午夜| 欧美在线中文字幕| 亚洲国产无码有码| 国产日韩精品欧美一区喷| 依依成人精品无v国产| 亚洲第一成年网| 亚洲一区无码在线| 亚洲成人黄色在线| 亚洲人成色77777在线观看| 无码区日韩专区免费系列|