專利名稱:計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)辦公軟件信息處理領(lǐng)域,特別涉及文字處理文檔排版領(lǐng)域,具體是指一種計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法。
背景技術(shù):
在現(xiàn)代生活中,計(jì)算機(jī)越來越成為人們必不可少的工具,其中隨著電子化進(jìn)程的逐步加快,人們對(duì)辦公軟件的需求也越來越高,特別是對(duì)于文字處理文檔中的排版自動(dòng)化處理,更是需求和應(yīng)用的非常廣泛。
目前,傳統(tǒng)的文檔處理工具對(duì)于常用的語(yǔ)言都有對(duì)應(yīng)的排版格式工具,而對(duì)于使用范圍較為狹小的少數(shù)民族語(yǔ)言來說,比如藏語(yǔ),就顯得非常不夠。而對(duì)于藏語(yǔ)的信息化電子化工程已經(jīng)越來越提上了議事日程。
但是在現(xiàn)有技術(shù)中,并沒有專門處理藏文的計(jì)算機(jī)文檔排版技術(shù),只能是依靠手工調(diào)整的方式來進(jìn)行排版,請(qǐng)參閱圖1所示,用目前市面上的Office等軟件來編輯藏文文檔時(shí),當(dāng)編輯到行尾時(shí),剩余的空間有時(shí)不能放下整個(gè)藏文音節(jié),就會(huì)出現(xiàn)一個(gè)音節(jié)部分顯示在當(dāng)前行,剩余音節(jié)顯示在下一行,這樣造成了音節(jié)因顯示在兩行而影響閱讀,排版也不美觀。即使有些嵌入的排版小工具能夠做到藏文的排版效果,但是也是手工的,每次編輯文檔都需要手工的去調(diào)用該工具來重新的對(duì)整個(gè)文檔進(jìn)行重新排版。如果需要拷貝排好版的內(nèi)容,粘貼后的文字中會(huì)包含許多排版時(shí)補(bǔ)充的“字分符”,需要再次的進(jìn)行重新排版。
總之,現(xiàn)有技術(shù)中存在如下缺陷(1)寫藏文文檔到行尾換行時(shí),需要手工斷字分行,手工補(bǔ)足字分符;(2)修改已寫好的文檔時(shí),需要再次對(duì)修改處后面的所有行進(jìn)行手工的來斷字分行,添加或刪除行尾的字分符;(3)拷貝一段多行的文字粘貼后,又需要?jiǎng)h除手工的刪除拷貝文字中的多余字分符,并再次手工進(jìn)行段落的排版。
由于存在以上各種缺陷,在辦公軟件中編輯藏文文檔非常的費(fèi)時(shí)費(fèi)力,文檔格式的正確性大為降低,造成了編輯藏文文檔的效率非常的低,給編輯藏文文檔帶來了很大的不便,阻礙了藏文的信息化進(jìn)程。
發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種適合于藏文自動(dòng)化規(guī)則排版、運(yùn)行性能穩(wěn)定可靠、系統(tǒng)處理效率較高、適用范圍較為廣泛的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法。
為了實(shí)現(xiàn)上述的目的,本發(fā)明的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法如下該計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,其主要特點(diǎn)是,所述的方法包括以下步驟(1)系統(tǒng)進(jìn)行初始化操作;(2)掃描文檔中的藏文段落字符信息;(3)以藏文字分符或者語(yǔ)句結(jié)束符對(duì)該藏文段落字符信息進(jìn)行斷字,并根據(jù)斷字的結(jié)果計(jì)算確定當(dāng)前行的開始藏文字符、能夠排下的藏文字符數(shù)和行末的藏文字符;(4)判斷該行末的藏文字符是否為段落結(jié)束字符;(5)如果是,則結(jié)束本藏文段落的排版;(6)如果否,則判斷該行中的剩余寬度是否大于零;(7)如果否,則返回步驟(3);(8)如果是,則根據(jù)該行中的剩余寬度大小進(jìn)行藏文行尾補(bǔ)齊操作,并返回步驟(3)。
該計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法的掃描文檔中的藏文段落字符信息包括以下步驟(1)系統(tǒng)獲取藏文段落包含的文字串信息;(2)系統(tǒng)掃描該文字串信息,并記錄每個(gè)字符的寬度。
該計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法的根據(jù)斷字的結(jié)果計(jì)算確定當(dāng)前行的開始藏文字符、能夠排下的藏文字符數(shù)和行末的藏文字符包括以下步驟(1)計(jì)算當(dāng)前行的寬度;(2)如果當(dāng)前行為第一行,則將該藏文段落文字串的第一個(gè)藏文字符作為當(dāng)前行的開始藏文字符;如果當(dāng)前行不是第一行,則將上一行的行末的藏文字符的下一個(gè)字符作為當(dāng)前行的開始藏文字符;(3)根據(jù)當(dāng)前行的寬度,計(jì)算當(dāng)前行能夠排下的從當(dāng)前行的開始藏文字符的字符數(shù);(4)若行末的藏文字符為字分符、語(yǔ)句結(jié)束符或者該藏文段落的最后字符,保持該行末的藏文字符;(5)否則,從該行末的藏文字符向前掃描,直至遇到藏文字分符或藏文語(yǔ)句結(jié)束符為止,并將該藏文字分符或藏文語(yǔ)句結(jié)束符記錄為該行末的藏文字符。
該計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法的得到該行的剩余寬度為根據(jù)當(dāng)前行的寬度和該行末的藏文字符計(jì)算出該行的剩余寬度。
該計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法的進(jìn)行藏文行尾補(bǔ)齊操作包括以下步驟(1)獲取該行末的藏文字符的寬度;(2)根據(jù)該行的剩余寬度計(jì)算出該行需要補(bǔ)足的字分符的個(gè)數(shù);(3)采用虛擬插入方式將這些需要補(bǔ)足的字分符插入到該行的行末位置。
采用了該發(fā)明的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,由于使用者在書寫藏文文檔到行尾換行時(shí),系統(tǒng)能夠自動(dòng)斷字分行,并補(bǔ)足字分符至行的寬度為止,完全不用手工干預(yù);同時(shí)修改已寫好的文檔時(shí),自動(dòng)對(duì)從修改處到本段落的段尾進(jìn)行排版,自動(dòng)的增加或刪除字分符,使每一行都保持對(duì)齊;而且在拷貝一段多行的文字時(shí),由于插入字分符采用的是虛擬插入技術(shù),這些字分符可以顯示、打印,拷貝時(shí)不會(huì)放入粘貼板中,粘貼時(shí)不會(huì)在文檔的非行末處插入多余的字分符,粘貼后再自動(dòng)地對(duì)自粘貼處到段尾進(jìn)行排版,從而很好的解決了藏文信息處理中的藏文斷字和分行的問題,而且這些操作無需人工干預(yù),能夠做到完全的自動(dòng)處理,同時(shí)使得做出來的文檔非常美觀大方;不僅如此,該方法的運(yùn)行性能穩(wěn)定可靠,系統(tǒng)處理效率較高,適用范圍較為廣泛,不僅適合于藏文,而且還適合于其它類型的采用字分符進(jìn)行文字分割的語(yǔ)言,為計(jì)算機(jī)信息化文檔技術(shù)的廣泛應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ)。
圖1為采用普通計(jì)算機(jī)文檔編輯工具進(jìn)行藏文排版的效果圖。
圖2為本發(fā)明的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法中進(jìn)行文檔排版全過程的示意圖。
圖3為本發(fā)明的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法的流程圖。
圖4為本發(fā)明的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法中藏文行尾補(bǔ)足操作的流程圖。
圖5為采用本發(fā)明的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法進(jìn)行藏文排版后的效果圖。
具體實(shí)施例方式
為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說明。
請(qǐng)參閱圖2至圖5所示,該計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,包括以下步驟(1)系統(tǒng)進(jìn)行初始化操作;(2)掃描文檔中的藏文段落字符信息,包括以下步驟(a)系統(tǒng)獲取藏文段落包含的文字串信息;(b)系統(tǒng)掃描該文字串信息,并記錄每個(gè)字符的寬度;(3)以藏文字分符或者語(yǔ)句結(jié)束符對(duì)該藏文段落字符信息進(jìn)行斷字,并根據(jù)斷字的結(jié)果計(jì)算確定當(dāng)前行的開始藏文字符、能夠排下的藏文字符數(shù)和行末的藏文字符,包括以下步驟(a)計(jì)算當(dāng)前行的寬度;(b)如果當(dāng)前行為第一行,則將該藏文段落文字串的第一個(gè)藏文字符作為當(dāng)前行的開始藏文字符;如果當(dāng)前行不是第一行,則將上一行的行末的藏文字符的下一個(gè)字符作為當(dāng)前行的開始藏文字符;(c)根據(jù)當(dāng)前行的寬度,計(jì)算當(dāng)前行能夠排下的從當(dāng)前行的開始藏文字符的字符數(shù);(d)若行末的藏文字符為字分符、語(yǔ)句結(jié)束符或者該藏文段落的最后字符,保持該行末的藏文字符;(e)否則,從該行末的藏文字符向前掃描,直至遇到藏文字分符或藏文語(yǔ)句結(jié)束符為止,并將該藏文字分符或藏文語(yǔ)句結(jié)束符記錄為該行末的藏文字符;(4)判斷該行末的藏文字符是否為段落結(jié)束字符;(5)如果是,則結(jié)束本藏文段落的排版;(6)如果否,則判斷該行中的剩余寬度是否大于零,該得到該行的剩余寬度為根據(jù)當(dāng)前行的寬度和該行末的藏文字符計(jì)算出該行的剩余寬度;(7)如果否,則返回步驟(3);(8)如果是,則根據(jù)該行中的剩余寬度大小進(jìn)行藏文行尾補(bǔ)齊操作,并返回步驟(3),該進(jìn)行藏文行尾補(bǔ)齊操作包括以下步驟(a)獲取該行末的藏文字符的寬度;(b)根據(jù)該行的剩余寬度計(jì)算出該行需要補(bǔ)足的字分符的個(gè)數(shù);(c)采用虛擬插入方式將這些需要補(bǔ)足的字分符插入到該行的行末位置。
在實(shí)際使用當(dāng)中,這里所說的辦公軟件中的藏文排版就是將一串藏文字符排成符合藏文排版習(xí)慣的電子文檔的過程。
本發(fā)明的具體實(shí)現(xiàn)過程中,文檔的排版過程是以段落(函數(shù)Format_Para)為單位新建一篇文檔,在編輯的時(shí),對(duì)所編輯的段落進(jìn)行排版(Format_Para);打開一篇已有文檔,在獲取文檔的內(nèi)容后,從文檔的第一段落起依次排版(Format_Para),直至所有段落排版完成為止。
函數(shù)Format_Para運(yùn)行的過程即為本發(fā)明的藏文排版流程,其中包括以下函數(shù)●ReadChars——該函數(shù)獲取即將排版的段落所包含的所有字符。
●SaveCharsWidth——該函數(shù)計(jì)算本段落中每個(gè)字符的寬度并記錄在指定數(shù)組中。
●GetLineWidth——該函數(shù)計(jì)算正在排版中的行的寬度。
●GetLineFirstChar——該函數(shù)獲取行的起始字符。
●GuessCharNum——該函數(shù)計(jì)算本行能夠排下的字符數(shù)目,從數(shù)組中獲得每個(gè)字符的寬度向后累加,到累加值接近行寬為止。
●IsEndOfPara——該函數(shù)判斷本行的最后一個(gè)字符是否為該段的最后一個(gè)字符。
●IsEndCharRight——該函數(shù)判斷此時(shí)行末的字符是否為字分符或者語(yǔ)句結(jié)束符。
●SearchTibetEndChar——該函數(shù)從本行中自后向前查找字分符或語(yǔ)句結(jié)束符。
●CompleteLineEnd——該函數(shù)用字分符補(bǔ)足本行剩余的空間。
所述的辦公軟件中藏文排版操作的過程如下(1)系統(tǒng)獲取待排版段落包含的文字串;(2)掃描該文字串,記錄每個(gè)字符的寬度;(3)計(jì)算當(dāng)前行的寬度,記錄本行的開始字符為文字串的第一個(gè)字符;(4)根據(jù)當(dāng)前行的寬度,計(jì)算當(dāng)前行能夠排下的自行開始字符的字符數(shù);(5)若行末字符為本段落最后字符,則結(jié)束本段落的排版;(6)若行末藏文字符是字分符或語(yǔ)句結(jié)束符,則轉(zhuǎn)步驟(8);反之,則從該字符向前掃描,直至獲得字分符或語(yǔ)句結(jié)束符為止,并記錄為本行的行的結(jié)束字符;(7)進(jìn)行藏文行尾補(bǔ)齊操作CompleteLineEnd,該行尾補(bǔ)齊操作包括以下步驟●根據(jù)行寬和本行的結(jié)束處的藏文字符得出本行剩余的寬度;●獲取本行結(jié)束處的字符的寬度;●計(jì)算本行需補(bǔ)足字分符的個(gè)數(shù);●將這些字分符插入到本行的行末;(8)記錄下一行的開始字符為(5)中得到的字符的下一個(gè)字符;(9)重復(fù)步驟(4)到步驟(8),至段落排版結(jié)束。
采用了上述的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,由于使用者在書寫藏文文檔到行尾換行時(shí),系統(tǒng)能夠自動(dòng)斷字分行,并補(bǔ)足字分符至行的寬度為止,完全不用手工干預(yù);同時(shí)修改已寫好的文檔時(shí),自動(dòng)對(duì)從修改處到本段落的段尾進(jìn)行排版,自動(dòng)的增加或刪除字分符,使每一行都保持對(duì)齊;而且在拷貝一段多行的文字時(shí),由于插入字分符采用的是虛擬插入技術(shù),這些字分符可以顯示、打印,拷貝時(shí)不會(huì)放入粘貼板中,粘貼時(shí)不會(huì)在文檔的非行末處插入多余的字分符,粘貼后再自動(dòng)地對(duì)自粘貼處到段尾進(jìn)行排版,從而很好的解決了藏文信息處理中的藏文斷字和分行的問題,而且這些操作無需人工干預(yù),能夠做到完全的自動(dòng)處理,同時(shí)使得做出來的文檔非常美觀大方;不僅如此,該方法的運(yùn)行性能穩(wěn)定可靠,系統(tǒng)處理效率較高,適用范圍較為廣泛,不僅適合于藏文,而且還適合于其它類型的采用字分符進(jìn)行文字分割的語(yǔ)言,為計(jì)算機(jī)信息化文檔技術(shù)的廣泛應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ)。
在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求
1.一種計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,其特征在于,所述的方法包括以下步驟(1)系統(tǒng)進(jìn)行初始化操作;(2)掃描文檔中的藏文段落字符信息;(3)以藏文字分符或者語(yǔ)句結(jié)束符對(duì)該藏文段落字符信息進(jìn)行斷字,并根據(jù)斷字的結(jié)果計(jì)算確定當(dāng)前行的開始藏文字符、能夠排下的藏文字符數(shù)和行末的藏文字符;(4)判斷該行末的藏文字符是否為段落結(jié)束字符;(5)如果是,則結(jié)束本藏文段落的排版;(6)如果否,則判斷該行中的剩余寬度是否大于零;(7)如果否,則返回步驟(3);(8)如果是,則根據(jù)該行中的剩余寬度大小進(jìn)行藏文行尾補(bǔ)齊操作,并返回步驟(3)。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,其特征在于,所述的掃描文檔中的藏文段落字符信息包括以下步驟(1)系統(tǒng)獲取藏文段落包含的文字串信息;(2)系統(tǒng)掃描該文字串信息,并記錄每個(gè)字符的寬度。
3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,其特征在于,所述的根據(jù)斷字的結(jié)果計(jì)算確定當(dāng)前行的開始藏文字符、能夠排下的藏文字符數(shù)和行末的藏文字符包括以下步驟(1)計(jì)算當(dāng)前行的寬度;(2)如果當(dāng)前行為第一行,則將該藏文段落文字串的第一個(gè)藏文字符作為當(dāng)前行的開始藏文字符;如果當(dāng)前行不是第一行,則將上一行的行末的藏文字符的下一個(gè)字符作為當(dāng)前行的開始藏文字符;(3)根據(jù)當(dāng)前行的寬度,計(jì)算當(dāng)前行能夠排下的從當(dāng)前行的開始藏文字符的字符數(shù);(4)若行末的藏文字符為字分符、語(yǔ)句結(jié)束符或者該藏文段落的最后字符,保持該行末的藏文字符;(5)否則,從該行末的藏文字符向前掃描,直至遇到藏文字分符或藏文語(yǔ)句結(jié)束符為止,并將該藏文字分符或藏文語(yǔ)句結(jié)束符記錄為該行末的藏文字符。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,其特征在于,所述的得到該行的剩余寬度為根據(jù)當(dāng)前行的寬度和該行末的藏文字符計(jì)算出該行的剩余寬度。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,其特征在于,所述的進(jìn)行藏文行尾補(bǔ)齊操作包括以下步驟(1)獲取該行末的藏文字符的寬度;(2)根據(jù)該行的剩余寬度計(jì)算出該行需要補(bǔ)足的字分符的個(gè)數(shù);(3)采用虛擬插入方式將這些需要補(bǔ)足的字分符插入到該行的行末位置。
全文摘要
本發(fā)明涉及一種計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,包括掃描文檔中的藏文段落字符信息、對(duì)該藏文段落字符信息進(jìn)行斷字并計(jì)算確定當(dāng)前行的開始藏文字符、能夠排下的藏文字符數(shù)和行末的藏文字符、判斷該藏文字符是否為段落結(jié)束字符、根據(jù)結(jié)果結(jié)束本藏文段落的排版或判斷該行中的剩余寬度是否大于零、根據(jù)該行中的剩余寬度大小進(jìn)行藏文行尾補(bǔ)齊操作。采用該種計(jì)算機(jī)文檔中實(shí)現(xiàn)藏文自動(dòng)規(guī)則排版的方法,解決了藏文信息處理中的斷字和分行的問題,無需人工干預(yù),自動(dòng)處理,文檔美觀大方,性能穩(wěn)定可靠,處理效率高,適用范圍較為廣泛,廣泛適合于其它類型的采用字分符進(jìn)行文字分割的語(yǔ)言,為計(jì)算機(jī)信息化文檔技術(shù)的廣泛應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ)。
文檔編號(hào)G06F17/25GK1949210SQ200610117990
公開日2007年4月18日 申請(qǐng)日期2006年11月3日 優(yōu)先權(quán)日2006年11月3日
發(fā)明者韓乃平 申請(qǐng)人:上海中標(biāo)軟件有限公司