專利名稱:超大型漢字信息處理裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及漢字信息處理裝置及方法,并且更具體地涉及能夠處理十萬以上漢字的超大型漢字信息處理裝置及方法。
當(dāng)前印刷業(yè)應(yīng)用計(jì)算機(jī)進(jìn)行漢字輸入、編輯、排版、打印輸出或發(fā)排印前膠片已經(jīng)很普遍。但是,當(dāng)處理的字量超過GB2312-80標(biāo)準(zhǔn)的6,763個(gè)漢字或是超出GB13000.1標(biāo)準(zhǔn)的21,003個(gè)漢字時(shí),目前國內(nèi)和國外的一些著名的、常用的排版系統(tǒng)都無法處理。比如《康熙字典》的字頭字就有47,000多個(gè),在釋義部分,還有超出這47,000字的2000多漢字,不但用字量大,而且版式復(fù)雜。因此,無論是鉛字印刷技術(shù)傳入中國的100多年以來,還是現(xiàn)代的計(jì)算機(jī)激光照排技術(shù),都沒有解決《康熙字典》按原版式印刷的難題,只能靠照相影印。許多古籍、地方志、人名檔案以及大型文獻(xiàn)的整理和印刷出版也都如此??梢哉f,當(dāng)前計(jì)算機(jī)印前系統(tǒng)處理的字量不能滿足中華5000年文化發(fā)展用字的需求。
因此,隨著信息化進(jìn)程在各個(gè)領(lǐng)域,特別是在大型文獻(xiàn)、大型科研文獻(xiàn)、古代典藉、戶籍造冊等領(lǐng)域的加速發(fā)展,急需一種能夠?qū)扇f以上漢字進(jìn)行輸入、編輯、排版和打印的漢字信息處理系統(tǒng)。
為解決上述需求,本發(fā)明的第一個(gè)目的是提供一種超大型漢字信息處理裝置,它能夠方便地處理十萬個(gè)以上的漢字。
本發(fā)明的第二個(gè)目的是提供一種超大型漢字信息處理方法。
為實(shí)現(xiàn)第一個(gè)目的,本發(fā)明提供一種漢字信息處理裝置,其特征在于包括用于接收漢字輸入碼的接收裝置;用于根據(jù)輸入碼判斷待輸入的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字的判斷裝置;第一轉(zhuǎn)換和發(fā)送裝置,用于在所述判斷裝置判斷出所述漢字是標(biāo)準(zhǔn)漢字時(shí),將所述輸入碼轉(zhuǎn)換為所述漢字的機(jī)內(nèi)碼,并將所述機(jī)內(nèi)碼發(fā)送給文字處理模塊;第二轉(zhuǎn)換和發(fā)送裝置,用于在所述判斷裝置判斷出所述漢字是擴(kuò)展?jié)h字時(shí),將所述輸入碼轉(zhuǎn)換為相應(yīng)的擴(kuò)展字庫識別碼和所述漢字的機(jī)內(nèi)碼,然后向文字處理模塊發(fā)送對應(yīng)于所述擴(kuò)展字庫識別碼的字體設(shè)置命令,并且向文字處理模塊發(fā)送所述機(jī)內(nèi)碼。
為實(shí)現(xiàn)第二個(gè)目的,本發(fā)明提供一種漢字信息處理方法,其特征在于包括以下步驟(1)接收漢字輸入碼;(2)根據(jù)輸入碼判斷待輸入的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字;(3)如果步驟(2)判斷所述漢字是標(biāo)準(zhǔn)漢字,則將所述輸入碼轉(zhuǎn)換為所述漢字的機(jī)內(nèi)碼,并將所述機(jī)內(nèi)碼發(fā)送給文字處理模塊;(4)如果步驟(2)判斷所述漢字是擴(kuò)展?jié)h字,則將所述輸入碼轉(zhuǎn)換為相應(yīng)的擴(kuò)展字庫識別碼和所述漢字的機(jī)內(nèi)碼,然后向文字處理模塊發(fā)送對應(yīng)于所述擴(kuò)展字庫識別碼的字體設(shè)置命令,并且向文字處理模塊發(fā)送所述機(jī)內(nèi)碼。
根據(jù)本發(fā)明的裝置和方法,能夠利用計(jì)算機(jī)對十萬個(gè)以上的漢字進(jìn)入輸入、編輯、排版和打印等,從而在需要處理大量漢字的領(lǐng)域中極大地促進(jìn)計(jì)算機(jī)的應(yīng)用。
結(jié)合附圖,通過以下示例方式對本發(fā)明最佳實(shí)施方式的描述,本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)將會(huì)更加明顯。
圖1是本發(fā)明的超大型漢字信息處理方法的總流程圖;圖2是造字系統(tǒng)的流程圖;圖3是圖1中的Microsoft Word 95/97接口管理模塊的流程圖;圖4是圖1中的輸入法管理模塊的流程圖;圖5示出了本發(fā)明的漢字信息處理裝置的示意結(jié)構(gòu);以及圖6示出本發(fā)明的漢字信息處理方法的流程圖。
為解決10萬漢字能夠在計(jì)算機(jī)上進(jìn)行漢字輸入、編輯、排版、打印輸出或發(fā)排印前膠片,就必須有10萬漢字庫,這是漢字顯示、打印的基礎(chǔ)。此外,還須有能夠輸入10萬漢字的輸入方法,編輯、排版支持系統(tǒng)。
因此,必須解決三個(gè)關(guān)鍵技術(shù)。第一是先進(jìn)的曲線描述漢字字模的計(jì)算機(jī)制作系統(tǒng),即造字系統(tǒng);第二是能夠輸入10萬漢字的輸入方法;第三是能夠?qū)?0萬漢字進(jìn)行處理的漢字編輯軟件。
造字系統(tǒng)開發(fā)造字系統(tǒng)時(shí),難點(diǎn)在于國外資料僅僅公開了用三次曲線描述英文字母的理論算法,但是沒有公開英文造字系統(tǒng)的設(shè)計(jì)技術(shù)。申請人自行設(shè)計(jì)了曲線漢字算法,完成了計(jì)算機(jī)造字系統(tǒng)的設(shè)計(jì)開發(fā),并在使用中不斷升級改進(jìn)。
通過該造字系統(tǒng)制作的曲線漢字符合國際通用的TrueType二次曲線的描述格式。每個(gè)漢字的輪廓是由若干條Bezier二次曲線和直線組成的,Bezier二次曲線實(shí)際上是由起始點(diǎn)、結(jié)束點(diǎn)、中間控制點(diǎn)三個(gè)點(diǎn)來描述曲線的形狀。在這里,將這三個(gè)點(diǎn)稱為控制點(diǎn)。直線是由起始點(diǎn)、結(jié)束點(diǎn)兩個(gè)控制點(diǎn)描述。造字系統(tǒng)由以下幾部分組成1.移動(dòng)控制點(diǎn)可調(diào)節(jié)各條輪廓線的曲率,并可伸縮各個(gè)筆畫的長度、寬度、斜度和曲度;2.對于每種字體,預(yù)先要制作幾千個(gè)大小不等的漢字零部件,然后給每個(gè)零部件編入編碼(例如,鄭碼),零部件按編碼排序后,就可用編碼快速地調(diào)用零部件將其拼合成各種不同字體的整字。比如有宋、仿宋、楷、黑等字體;3.在拼字的過程中,可以移動(dòng)或旋轉(zhuǎn)零部件,并可無極縮放其大小,以調(diào)整字體重心的平穩(wěn);4.用編碼(如鄭碼)還可調(diào)用已經(jīng)精修的成品漢字,取其某些零部件來拼合新的漢字。由于成品字經(jīng)過多遍精修,其中的零部件要比初始的單獨(dú)零部件質(zhì)量高。這一技術(shù)不但使造字效率大大提高,而且最大限度地保證了所造字的精度和美觀。
漢字輸入法在本發(fā)明的最佳實(shí)施方式中,采用鄭碼作為漢字或漢字零部件的編碼,這是因?yàn)椋鳛橐环N方便、快捷的漢字輸入方法,鄭碼能夠?qū)Χf以上的漢字以及漢字零部件進(jìn)行編碼,從而可以將二萬以上漢字或漢字零部件輸入到計(jì)算機(jī)中。在涉及大字符集的印前制作項(xiàng)目中,鄭碼輸入法已得到廣泛應(yīng)用。
當(dāng)然,如果其他漢字輸入法能夠?qū)Χf以上的漢字以及漢字零部件進(jìn)行編碼的話,也可以采用這樣的漢字輸入法。
漢字編輯軟件為了便于用戶使用,本發(fā)明最佳實(shí)施方式中,將Microsoft Word作為漢字編輯軟件?,F(xiàn)有的Microsoft Word 95/97/2000,支持21,003個(gè)漢字。在Microsoft Word中,結(jié)合True Type字庫分頁技術(shù),可以利用字體設(shè)置命令改變相關(guān)漢字的字體。
當(dāng)然,如果其他漢字編輯軟件也能夠利用True Type中文字庫分頁技術(shù)改變漢字字體的話,也可以采用這樣的漢字編輯軟件。
本發(fā)明的最佳實(shí)施方式,集鄭碼輸入法、10萬漢字庫、造字系統(tǒng)、Microsoft Word于一體,解決了計(jì)算機(jī)對10萬漢字進(jìn)行處理的支撐技術(shù),保證10萬個(gè)漢字能夠正確地輸入計(jì)算機(jī),并根據(jù)用戶需要得到正確處理。
具體地說,本發(fā)明將Microsoft Word API技術(shù)、True Type中文字庫分頁技術(shù)和鄭碼輸入法巧妙地結(jié)合在一起,通過超大型漢字輸入法管理模塊來實(shí)現(xiàn),該超大型漢字輸入法管理模塊可直接控制Microsoft Word95/97/2000,達(dá)到處理10萬漢字的輸入、輸出、排版和電子檢索等功能。
在一種具體實(shí)現(xiàn)中,超大型漢字輸入法管理模塊由三個(gè)部分合成第一部分是輸入法功能的設(shè)置;第二部分是軟鍵盤輸入;第三部分是超大型漢字鍵盤輸入。
輸入法功能的設(shè)置,包括十萬/二萬切換、中/英文標(biāo)點(diǎn)切換、全角/半角切換、中英文切換、詞語聯(lián)想、詞語輸入、逐漸提示、外碼提示、光標(biāo)跟隨九項(xiàng)設(shè)置,下面一一列舉如下1.十萬/二萬切換用Ctrl+Tab鍵來切換,當(dāng)“二萬”功能有效時(shí),只輸入21003個(gè)漢字,否則可輸入10萬漢字;2.中/英文標(biāo)點(diǎn)切換鍵盤Ctrl+.(句號)鍵切換,在英文標(biāo)點(diǎn)狀態(tài)下,所有標(biāo)點(diǎn)與鍵盤一一對應(yīng)。在中文標(biāo)點(diǎn)狀態(tài)下,中文標(biāo)點(diǎn)符號與鍵盤的對照關(guān)系如下“省略號……”對應(yīng)“^”;“破折號——”對應(yīng)“-”;“頓號、”對應(yīng)“/”;“間隔號·”對應(yīng)“@”;“連接號—”對應(yīng)“&”;“人民幣符號¥”對應(yīng)“$”;其他標(biāo)點(diǎn)與鍵盤一一對應(yīng);3.全角/半角切換鍵盤Shift+Space鍵切換,在全角狀態(tài)下輸入的字母為雙字節(jié)寬度,否則為單字節(jié);4.中英文切換鍵盤Caps Lock鍵或Ctrl+Space鍵切換;5.詞語聯(lián)想輸入字詞后,自動(dòng)提示出以當(dāng)前字詞開頭的候選詞語;6.詞語輸入允許/禁止詞語輸入;7.逐漸提示逐漸提示是指在候選窗中顯示所有以已輸入碼元開始的字和詞,以方便用戶選擇,逐漸提示”未設(shè)置時(shí),鍵入有效碼元后,如沒有重碼,漢字直接上屏。如有重碼,在候選窗中顯示重碼漢字。
8.外碼提示外碼提示是指在候選窗中顯示所有以已輸入碼元開始的字詞的其余外碼,以方便用戶學(xué)習(xí)?!巴獯a提示”只有在“逐漸提示”有效下才起作用;9.光標(biāo)跟隨光標(biāo)跟隨是指外碼窗和候選窗始終在輸入光標(biāo)附近出現(xiàn)并自動(dòng)跟隨光標(biāo)移動(dòng),以使用戶在中文輸入時(shí)具有良好的視覺效果。
軟鍵盤的輸入包括標(biāo)準(zhǔn)PC鍵盤、希臘字母、俄文字母、注音符號、拼音、日文平假名、日文片假名、標(biāo)點(diǎn)符號、數(shù)字序號、數(shù)學(xué)符號、單位符號、制表符、特殊符號共十三項(xiàng)符號的輸入。
超大型漢字鍵盤的輸入,該技術(shù)是本發(fā)明的關(guān)鍵技術(shù),它結(jié)合了Microsoft Word API技術(shù)、True Type中文字庫分頁技術(shù)以及“鄭碼”漢字編碼方法。
True Type中文字庫分頁技術(shù)是本申請人的實(shí)用技術(shù),限于目前Word只能處理21003個(gè)漢字,必須對十萬個(gè)漢字分成5個(gè)頁面,頁面的具體分配如下1.超大型輸入法內(nèi)部分配。
其中第一個(gè)頁面是兩字節(jié)表示,與當(dāng)前的GBK標(biāo)準(zhǔn)是完全一致的,第2~5個(gè)頁面在輸入法內(nèi)部是四字節(jié)表示的,前兩個(gè)字節(jié)分別以十六進(jìn)制數(shù)D7FA,D7FB,D7FC,D7FD表示(這四個(gè)十六進(jìn)制數(shù)實(shí)際上是GBK標(biāo)準(zhǔn)碼位中的沒有定義的碼位,我們用這四個(gè)數(shù)分別表示四個(gè)頁面),后兩個(gè)字節(jié)GBK標(biāo)準(zhǔn)碼位表示。
2.字庫的分配。
由五個(gè)字庫組成,每個(gè)字庫包含2萬個(gè)漢字,每個(gè)字庫包含一個(gè)頁面的漢字,其中第一個(gè)頁面的字庫是系統(tǒng)本身字庫,第2~5個(gè)頁面的字庫是超大型漢字信息處理系統(tǒng)提供的十萬字庫(除系統(tǒng)的21003個(gè)漢字),這些字庫占用的是GBK標(biāo)準(zhǔn)碼位,區(qū)分十萬字庫的方法是依據(jù)字庫名稱來確定的,第2~5個(gè)頁面的字庫名稱分別是“SuperSong1”、“SuperSong2”、“SuperSong3”、“SuperSong4”。第2~5個(gè)頁面用的碼位雖然是GBK碼,但每個(gè)碼位存放的漢字是不一樣,如同樣一個(gè)GBK碼0xd2bb,在第一個(gè)頁面放的是漢字“一”,但在第二個(gè)頁面放的卻是“ ”字,在第三個(gè)頁面放的又是另外一個(gè)漢字。
3.在Microsoft Word中頁面的分配。
當(dāng)超大型輸入法向Microsoft Word發(fā)送漢字時(shí),如果是第一個(gè)頁面的漢字,就直接發(fā)送給Microsoft word;如果是第2~5個(gè)頁面的漢字,因?yàn)檩斎敕▋?nèi)部分配是四字節(jié)表示的,通過前兩字節(jié)可判定該漢字所在頁面,進(jìn)一步可確定該漢字所在的字庫編號,所以向Microsoft Word發(fā)送漢字時(shí),先發(fā)送該漢字的字體信息,然后發(fā)送后兩個(gè)字節(jié)。
有了True Type中文字庫分頁技術(shù)基礎(chǔ),要在輸入法內(nèi)部實(shí)現(xiàn)自動(dòng)分頁,就必須能夠直接控制Word的當(dāng)前顯示字體,才能對十萬個(gè)漢字進(jìn)行處理。申請人通過Microsoft word API對word進(jìn)行控制。
Microsoft Word API是微軟Word開發(fā)接口的工具包(Microsoft WordDeveloper′s Kit),通過該工具包可對Word實(shí)行再開發(fā),即可控制word的部分排版、編輯功能。在Windows中,可以建立獨(dú)立的特殊動(dòng)態(tài)連接庫(WLL)作為Word的插件,從而增強(qiáng)Word的功能。這個(gè)WLL可調(diào)用Word API,但這個(gè)WLL必須安裝到WordBasic宏所在的子目錄里才能被Word調(diào)用。這樣的話,我們不能直接控制Word,也就達(dá)不到十萬漢字全部進(jìn)入計(jì)算機(jī)的目的。經(jīng)過試驗(yàn)與探索,終于找到了一種方法,可以解決直接控制Word的問題。因?yàn)檩斎敕ü芾砟K(IME)本身就是一個(gè)動(dòng)態(tài)連接庫,雖然沒有安裝到WordBasic宏所在的子目錄里,但使用Word時(shí),如果需要輸入漢字,就必須調(diào)用輸入法管理模塊,也就是說,在Word中打開輸入法管理模塊相當(dāng)于裝入了一個(gè)特殊的WLL庫,所以通過該輸入法管理模塊,也可調(diào)用Word API,從而達(dá)到直接控制Word的目的。
要控制Word當(dāng)前輸入的漢字顯示字體,超大型輸入法管理模塊控制Word的方法如下<pre listing-type="program-listing"><![CDATA[1.初始化Word命令緩沖區(qū)(InitWCB函數(shù));該函數(shù)的調(diào)用說明如下 void InitWCB(WCB far *lpwcb, ushort retType, LPUCHAR lpBuffer, ushort cBufferSize); lpwcb--Word命令緩沖區(qū) retType--命令類型(TypeString字符串,TypeShort16位整 數(shù),TypeLong32位整數(shù),TypeVoid相當(dāng)C語言中的void類 型) lpBuffer--返回字符串 cBufferSize--返回字符串的長度2.添加Word命令參數(shù); void AddStringParam(WCB far*lpwcb, LPUCHAR lpStr); lpwcb--Word命令緩沖區(qū) lpStr--添加的字符串(在該發(fā)明中添加的字體名稱)3.執(zhí)行Word命令(WORDCALL函數(shù))。
void WORDCALL(short CommandID); CommandID--Word命令代號,其中代號“wdFont”是設(shè)置當(dāng)前字體名稱的命令代號。]]></pre>有了True Type中文字庫分頁技術(shù)以及“鄭碼”漢字編碼方法,再結(jié)合Microsoft Word API技術(shù),就可實(shí)現(xiàn)超大型漢字鍵盤的輸入。
超大型漢字鍵盤的輸入方法如下1.分析輸入的鍵值,確認(rèn)鍵值是否為鄭碼編碼A-Z;2.顯示候選字詞。當(dāng)候選字為GBK內(nèi)的漢字時(shí),以宋體字顯示該漢字,當(dāng)候選字為GBK以外的字時(shí)則按分頁字庫顯示,因?yàn)檩斎敕▋?nèi)部分配的是四字節(jié)表示的,通過前兩字節(jié)可判定該漢字所在頁面,進(jìn)一步可確定該漢字所在的字庫編號,所以調(diào)用SelectFont命令選擇字體名稱為該漢字所屬的字體名稱,然后以兩個(gè)字節(jié)代碼顯示該漢字;3.確認(rèn)輸入鍵為選擇鍵′0′-′9′或空格鍵;4.確認(rèn)當(dāng)前調(diào)用程序,如果為Word95/97,則調(diào)用Word API設(shè)置分頁字體,發(fā)送輸入的字符給調(diào)用程序,否則直接發(fā)送輸入的字符給調(diào)用程序。
上述過程詳細(xì)地示于圖4之中,在此不再贅述。
圖1示出了超大型漢字信息處理系統(tǒng)的總體結(jié)構(gòu)。
圖2示出造字系統(tǒng)的流程圖,該造字系統(tǒng)是完成十萬漢字庫的工具。
圖3是Microsoft Word 95/97接口流程圖。該圖中包含三個(gè)小模塊,其中“輸入法調(diào)用Word命令”是超大型漢字輸入模塊與Word的接口技術(shù),“超級查找命令”是Word中查找十萬漢字的專用命令“超級字體命令(SuperFont)”是是嵌入到Word中的宏命令,其目的在于改變漢字字體名稱時(shí),不改變第2~5個(gè)頁面的字體名稱,否則就會(huì)把第2~5個(gè)頁面的漢字改到第一個(gè)頁面去,顯示的不再是原來的漢字了。該命令的實(shí)現(xiàn)步驟如下1.判定所選字符串中是否含第2~5頁面的漢字;2.當(dāng)含第2~5頁面的漢字時(shí)不改變字體,否則設(shè)為所選字體。
下面是SuperFont宏命令的源代碼<pre listing-type="program-listing"><![CDATA[Dim lastElementDim count_Dim theResultDim theFont$Dim iLastFont$Dim iFontCountDim fontarray()As StringlastElement=WordBasic.CountFonts()-1ReDim fontarray(lastElement)As StringFor count_=0 To lastElement Select Case WordBasic.[font$](count_+1) Case″SuperSong1″ iFontCount=iFontCount+1Case″SuperSong2″iFontCount=iFontCount+1Case″SuperSong3″iFontCount=iFontCount+1Case″SuperSong4″iFontCount=iFontCount+1Case″SuperSong5″iFontCount=iFontCount+1Case Else fontarray(count_-iFontCount)=WordBasic.[font$](count_+1) End Select Next]]></pre>“超級查找命令(SuperFind)”是嵌入到Word中的宏命令。其目的在于能夠精確查找到第1~5個(gè)頁面的十萬漢字,直接使用Word中的“查找”命令,如果要找第一個(gè)頁面的漢字,因查找時(shí)只是根據(jù)其內(nèi)碼來尋找,可能會(huì)找到第2~5個(gè)頁面中的另外一個(gè)漢字(其內(nèi)碼與查找的漢字一樣)。所以必須提供一個(gè)“超級查找命令(SuperFind)”來解決這個(gè)問題。
該命令的實(shí)現(xiàn)步驟如下1.在SuperFind對話框中輸入要找的漢字;2.返回要找漢字的內(nèi)碼;3.返回要找漢字的字體名稱;4.通過以下的源程序找到漢字;<pre listing-type="program-listing"><![CDATA[ Selection.Find.ClearFormatting With Selection.Find .Text=txtFind.Text(要找的漢字) .Replacement.Text=″″ .Forward=True Select Case iSearchScopeCase 0.Forward=True.Wrap=wdFindContinueCase 1.Forward=True.Wrap=wdFindAskCase2.Forward=False.Wrap=wdFindAsk End Select.Format=TrueIf strFName<>″MS Sans Serif″Then.Font.NameFarEast=strFName(要到漢字的字體名稱)Else.Font.NameFarEast=″宋體″End If.MatchCase=False.MatchWholeWord=False.MatchWildcards=False.MatchSoundsLike=False.MatchAllWordForms=False.MatchByte=TrueEnd WithiResult=Selection.Find.ExecuteIfiResult=True TheniSearched=iSearched+1End IfIfiSearched=0 ThenMsgBox″沒有查找到相應(yīng)的字!″End If]]></pre>為了更形象地理解本發(fā)明,下面給出一個(gè)實(shí)際的例子。
在“超大型漢字信息處理系統(tǒng)中”中第二至第五個(gè)頁面的字體名稱分別設(shè)為“SuperSong1”、“SuperSong2”、“Supersong3”、“SuperSong4”,第一個(gè)頁面的字體選用系統(tǒng)已安裝字體。
在Windows 95/98/NT中運(yùn)行Word軟件,然后切換到“超級鄭碼”輸入法。
輸入一個(gè)漢字,在二萬漢字輸入模式時(shí),如果鍵入“a”,再鍵入空格鍵,選擇的是漢字“一”,在超大型漢字輸入模塊內(nèi)部得到可漢字“一”的代碼為兩字節(jié)0xd2bb,輸入模塊直接將“一”字的兩字節(jié)代碼0xd2bb發(fā)給Word;當(dāng)用Ctrl+Tab鍵切換到輸入十萬漢字模式時(shí),“超”提示為紅色,這時(shí)可以輸入GBK以外的漢字,鍵入“iaia”,這時(shí)提示“1叔叔 2 3 ”,敲入“2”鍵,選中“ ”字,這時(shí)在超大型漢字輸入模塊內(nèi)部得到“ ”字的四字節(jié)代碼為0xd7fad2bb,前面兩字節(jié)代碼為0xd7fa,可以判定為第二個(gè)頁面的漢字,所以將Word的當(dāng)前字體設(shè)為“SuperSong1”,設(shè)置當(dāng)前字體的步驟是a.WCB wcb;b.InitWCB(&wcb,TypeVoid,NULL,0);c.AddStringParam(&wcb,“SuperSong1”);d.WORDCALL(wdFont);然后將“ ”字的后兩字節(jié)0xd2bb發(fā)給Word,這時(shí)Word將以“SuperSong1”中GBK內(nèi)碼0xd2bb所對應(yīng)的漢字“ ”顯示。
1.查找一個(gè)漢字,選擇“SuperFind”命令,在查找內(nèi)容中輸入漢字“ ”,就會(huì)在上面輸入的內(nèi)容中找到該字。如果直接使用Word中的“查找”命令,在查找內(nèi)容中輸入漢字“一”,則會(huì)找到“一”和“ ”兩個(gè)字,這與實(shí)際要找的內(nèi)容是不符的,所以為查找GBK以外的十萬漢字,“超大型漢字信息處理系統(tǒng)”中增加了嵌入到Word中的“SuperFind”命令;2.變換字體名稱,選擇“一 ”兩個(gè)漢字,使用“SuperFont”命令,選擇字體為“黑體”,所選內(nèi)容就變?yōu)椤耙?”。如果直接使用Word中的“字體”命令,同樣選擇的字體為“黑體”,所選內(nèi)容就變?yōu)椤耙灰弧?。這與實(shí)際變換效果是不符的,所以為保證GBK以外的漢字在變換字體名稱時(shí)不會(huì)出錯(cuò),在“超大型漢字信息處理系統(tǒng)”中增加了嵌入到Word中的“SuperFont”命令。
如上所述,已詳細(xì)地描述了本發(fā)明的最佳實(shí)施方式,并給出了一個(gè)實(shí)際的例子。下面結(jié)合圖5和圖6對本發(fā)明的漢字信息處理裝置和方法做一個(gè)總結(jié)。
圖5示出了本發(fā)明的漢字信息處理裝置的示意結(jié)構(gòu)。
在圖5中,標(biāo)號501代表用于接收漢字輸入碼的接收裝置;標(biāo)號502代表用于根據(jù)輸入碼判斷待輸入的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字的判斷裝置;標(biāo)號503代表第一轉(zhuǎn)換和發(fā)送裝置,用于在判斷裝置502判斷出待輸入的漢字是標(biāo)準(zhǔn)漢字時(shí),將輸入碼轉(zhuǎn)換為漢字的機(jī)內(nèi)碼,并將機(jī)內(nèi)碼發(fā)送給文字處理模塊;標(biāo)號504代表第二轉(zhuǎn)換和發(fā)送裝置,用于在判斷裝置502判斷出漢字是擴(kuò)展?jié)h字時(shí),將輸入碼轉(zhuǎn)換為相應(yīng)的擴(kuò)展字庫識別碼和待輸入漢字的機(jī)內(nèi)碼,然后向文字處理模塊發(fā)送對應(yīng)于該擴(kuò)展字庫識別碼的字體設(shè)置命令,并且向文字處理模塊發(fā)送機(jī)內(nèi)碼;標(biāo)號505代表文字處理模塊;標(biāo)號506代表標(biāo)準(zhǔn)字庫/擴(kuò)展字庫。
文字處理模塊505,包括用于在從第二轉(zhuǎn)換和發(fā)送裝置504收到字體設(shè)置命令和機(jī)內(nèi)碼后,根據(jù)機(jī)內(nèi)碼,從擴(kuò)展字庫識別碼標(biāo)識的字庫(即擴(kuò)展字庫)獲取字形信息的裝置。所獲取的字形信息可進(jìn)而傳遞給顯示裝置或打印裝置(未示出)以便顯示或打印。
文字處理模塊505還包括用于只改變標(biāo)準(zhǔn)漢字的字體而不改變擴(kuò)展?jié)h字的字體的裝置。
文字處理模塊505還可以包括用于判斷所查找的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字的裝置;以及用于在判斷出所查找的漢字是擴(kuò)展?jié)h字時(shí)利用擴(kuò)展字庫進(jìn)行查找的裝置。
文字處理模塊505處理后的漢字信息,可以輸出至其他裝置做進(jìn)一步處理,比如存儲(chǔ)、顯示、打印等。
標(biāo)準(zhǔn)字庫/擴(kuò)展字庫506具有多個(gè)頁面,在它一個(gè)頁面中存儲(chǔ)了標(biāo)準(zhǔn)漢字的字形信息,而在其他多個(gè)頁面中存儲(chǔ)了擴(kuò)展?jié)h字的字形信息,其中存儲(chǔ)擴(kuò)展?jié)h字字形信息的不同頁面由不同的擴(kuò)展字庫識別碼標(biāo)識。
圖6示出本發(fā)明的漢字信息處理方法的流程圖。
步驟601,接收漢字輸入碼。
步驟602,根據(jù)輸入碼判斷待輸入的漢字是不是標(biāo)準(zhǔn)漢字。
如果步驟602的判斷結(jié)果為是,則進(jìn)行到步驟606,否則進(jìn)行到步驟603。
步驟606,將輸入碼轉(zhuǎn)換為漢字機(jī)內(nèi)碼,然后進(jìn)行到步驟605。
步驟603,將輸入碼轉(zhuǎn)換為相應(yīng)的擴(kuò)展字庫識別碼和漢字機(jī)內(nèi)碼。
步驟604,向文字處理模塊發(fā)送對應(yīng)于擴(kuò)展字庫識別碼的字體設(shè)置命令。
步驟605,向文字處理模塊發(fā)送機(jī)內(nèi)碼,然后返回步驟601。
文字處理模塊在收到字體設(shè)置命令和所述機(jī)內(nèi)碼后,根據(jù)機(jī)內(nèi)碼,從擴(kuò)展字庫識別碼標(biāo)識的字庫獲取字形信息。
文字處理模塊還可以執(zhí)行以下步驟在改變已錄入的漢字的字體時(shí),只改變標(biāo)準(zhǔn)漢字的字體,而不改變擴(kuò)展?jié)h字的字體;以及在查找已錄入的漢字時(shí),首先判斷所查找的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字,如果所查找的漢字是擴(kuò)展?jié)h字,則利用擴(kuò)展字庫進(jìn)行查找。
另外,可以通過以下步驟預(yù)先構(gòu)造包括多個(gè)頁面的多個(gè)漢字庫,在漢字庫的一個(gè)頁面中存儲(chǔ)標(biāo)準(zhǔn)漢字的字形信息,該頁面包括符合GB2312-80、GB13000.1和GB18030-2000的宋、仿、楷、黑四種曲線字庫,而在其他多個(gè)頁面中存儲(chǔ)擴(kuò)展?jié)h字的字形信息,存儲(chǔ)擴(kuò)展?jié)h字字形信息的不同頁面由不同的擴(kuò)展字庫識別碼標(biāo)識,擴(kuò)展字庫含有符合SuperCJK標(biāo)準(zhǔn)68000漢字宋、楷兩種曲線字庫以及10萬曲線宋體、楷體字庫。
雖然已經(jīng)示出和詳細(xì)描述了本發(fā)明的較佳實(shí)施方式,但是應(yīng)當(dāng)認(rèn)識到可以對本發(fā)明做出各種變化和修改而不脫離權(quán)利要求書的范圍。
權(quán)利要求
1.一種漢字信息處理裝置,其特征在于包括用于接收漢字輸入碼的接收裝置;用于根據(jù)輸入碼判斷待輸入的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字的判斷裝置;第一轉(zhuǎn)換和發(fā)送裝置,用于在所述判斷裝置判斷出所述漢字是標(biāo)準(zhǔn)漢字時(shí),將所述輸入碼轉(zhuǎn)換為所述漢字的機(jī)內(nèi)碼,并將所述機(jī)內(nèi)碼發(fā)送給文字處理模塊;第二轉(zhuǎn)換和發(fā)送裝置,用于在所述判斷裝置判斷出所述漢字是擴(kuò)展?jié)h字時(shí),將所述輸入碼轉(zhuǎn)換為相應(yīng)的擴(kuò)展字庫識別碼和所述漢字的機(jī)內(nèi)碼,然后向文字處理模塊發(fā)送對應(yīng)于所述擴(kuò)展字庫識別碼的字體設(shè)置命令,并且向文字處理模塊發(fā)送所述機(jī)內(nèi)碼。
2.根據(jù)權(quán)利要求1的裝置,其特征在于文字處理模塊包括用于在收到所述字體設(shè)置命令和所述機(jī)內(nèi)碼后,根據(jù)所述機(jī)內(nèi)碼,從所述擴(kuò)展字庫識別碼標(biāo)識的字庫獲取字形信息的裝置。
3.根據(jù)權(quán)利要求1的裝置,其特征在于文字處理模塊包括用于只改變標(biāo)準(zhǔn)漢字的字體而不改變擴(kuò)展?jié)h字的字體的裝置。
4.根據(jù)權(quán)利要求1的裝置,其特征在于文字處理模塊包括用于判斷所查找的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字的裝置;以及用于在判斷出所查找的漢字是擴(kuò)展?jié)h字時(shí)利用所述擴(kuò)展字庫進(jìn)行查找的裝置。
5.根據(jù)權(quán)利要求2至4中任一項(xiàng)的裝置,其特征在于所述文字處理模塊是Microsoft Word。
6.根據(jù)權(quán)利要求1的裝置,其特征在于還包括具有多個(gè)頁面的多個(gè)漢字庫,在所述漢字庫的一個(gè)頁面中存儲(chǔ)了標(biāo)準(zhǔn)漢字的字形信息,而在其他多個(gè)頁面中存儲(chǔ)了擴(kuò)展?jié)h字的字形信息,其中存儲(chǔ)擴(kuò)展?jié)h字字形信息的不同頁面由不同的擴(kuò)展字庫識別碼標(biāo)識。
7.根據(jù)權(quán)利要求1至4以及6中任一項(xiàng)的裝置,其特征在于所述接收裝置允許以鄭碼作為輸入碼。
8.一種漢字信息處理方法,其特征在于包括以下步驟(1)接收漢字輸入碼;(2)根據(jù)輸入碼判斷待輸入的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字;(3)如果步驟(2)判斷所述漢字是標(biāo)準(zhǔn)漢字,則將所述輸入碼轉(zhuǎn)換為所述漢字的機(jī)內(nèi)碼,并將所述機(jī)內(nèi)碼發(fā)送給文字處理模塊;(4)如果步驟(2)判斷所述漢字是擴(kuò)展?jié)h字,則將所述輸入碼轉(zhuǎn)換為相應(yīng)的擴(kuò)展字庫識別碼和所述漢字的機(jī)內(nèi)碼,然后向文字處理模塊發(fā)送對應(yīng)于所述擴(kuò)展字庫識別碼的字體設(shè)置命令,并且向文字處理模塊發(fā)送所述機(jī)內(nèi)碼。
9.根據(jù)權(quán)利要求8的方法,其特征在于還包括由文字處理模塊執(zhí)行的以下步驟在收到所述字體設(shè)置命令和所述機(jī)內(nèi)碼后,根據(jù)所述機(jī)內(nèi)碼,從所述擴(kuò)展字庫識別碼標(biāo)識的字庫獲取字形信息。
10.根據(jù)權(quán)利要求8的方法,其特征在于還包括由文字處理模塊執(zhí)行的以下步驟在改變已錄入的漢字的字體時(shí),只改變標(biāo)準(zhǔn)漢字的字體,而不改變擴(kuò)展?jié)h字的字體。
11.根據(jù)權(quán)利要求8的方法,其特征在于還包括由文字處理模塊執(zhí)行的以下步驟在查找已錄入的漢字時(shí),首先判斷所查找的漢字是標(biāo)準(zhǔn)漢字還是擴(kuò)展?jié)h字,如果所查找的漢字是擴(kuò)展?jié)h字,則利用所述擴(kuò)展字庫進(jìn)行查找。
12.根據(jù)權(quán)利要求9至11中任一項(xiàng)的方法,其特征在于所述文字處理模塊是Microsoft Word。
13.根據(jù)權(quán)利要求8的方法,其特征在于還包括以下步驟預(yù)先構(gòu)造包括多個(gè)頁面的多個(gè)漢字庫,在所述漢字庫的一個(gè)頁面中存儲(chǔ)標(biāo)準(zhǔn)漢字的字形信息,該頁面包括符合GB2312-80、GB13000.1和GB18030-2000的宋、仿、楷、黑四種曲線字庫,而在其他多個(gè)頁面中存儲(chǔ)擴(kuò)展?jié)h字的字形信息,存儲(chǔ)擴(kuò)展?jié)h字字形信息的不同頁面由不同的擴(kuò)展字庫識別碼標(biāo)識,擴(kuò)展字庫含有符合SuperCJK標(biāo)準(zhǔn)68000漢字宋、楷兩種曲線字庫以及10萬曲線宋體、楷體字庫。
14.根據(jù)權(quán)利要求13的方法,其特征在于所述多個(gè)漢字庫包括11×12、13×14、15×16、20×20、24×24和48×48點(diǎn)陣漢字庫。
15.根據(jù)權(quán)利要求8至11以及13和14中任一項(xiàng)的方法,其特征在于步驟(1)中的漢字輸入碼是鄭碼。
全文摘要
提供一種超大型漢字信息處理裝置及方法。該裝置包括:漢字輸入碼接收裝置;判斷待輸入的漢字是否是擴(kuò)展?jié)h字的判斷裝置;笫一轉(zhuǎn)換和發(fā)送裝置,用于在輸入的漢字是標(biāo)準(zhǔn)漢字時(shí),將輸入碼轉(zhuǎn)換為所述漢字的機(jī)內(nèi)碼并發(fā)送給文字處理模塊;第二轉(zhuǎn)換和發(fā)送裝置,用于在輸入的漢字是擴(kuò)展?jié)h字時(shí),將輸入碼轉(zhuǎn)換為相應(yīng)的擴(kuò)展字庫識別碼和所述漢字的機(jī)內(nèi)碼,然后向文字處理模塊發(fā)送對應(yīng)于所述擴(kuò)展字庫識別碼的字體設(shè)置命令,并且向文字處理模塊發(fā)送所述機(jī)內(nèi)碼。
文檔編號G06F3/023GK1359079SQ0013554
公開日2002年7月17日 申請日期2000年12月18日 優(yōu)先權(quán)日2000年12月18日
發(fā)明者藍(lán)德康, 鄭瓏 申請人:北京中易鄭碼新技術(shù)有限責(zé)任公司