專利名稱:文本內(nèi)容排版方法和終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉終端瀏覽器技術(shù),特別涉及文本內(nèi)容排版方法和相應(yīng)的終端。
背景技術(shù):
現(xiàn)有終端,如手機瀏覽器技術(shù)中,一個亟待解決的問題就是針對文本內(nèi)容,如何在給定屏幕上進(jìn)行合理的排版。該問題將直接影響到頁面的渲染速度,尤其是在文字量很大,即存在大文本內(nèi)容的情況下?,F(xiàn)有技術(shù)中,通常采用以下排版方式
I)針對待顯示的字符串,從其中的第一個字符開始,分別確定其寬度,并在確定的同時隨之統(tǒng)計各字符的總寬度,即累計寬度,當(dāng)出現(xiàn)第I N(N為大于I的正整數(shù))個字符的總寬度小于或等于屏幕寬度,第I N+1個字符的總寬度大于屏幕寬度的情況時,將第I N個字符作為一行顯示到終端屏幕上;2)之后,從第N+1個字符開始,重復(fù)上述過程,即確定各字符的寬度,并統(tǒng)計總寬度,當(dāng)出現(xiàn)第N+1 N+M個字符(M為大于I的正整數(shù))的總寬度小于或等于屏幕寬度,第N+1 N+M+1個字符的總寬度大于屏幕寬度時,將第N+1 N+M個字符作為一行顯示到終端屏眷上;后續(xù)依次類推。舉例說明假設(shè)待顯示的字符串中共存在7個字符,分別為字符I、字符2、字符3、字符4、字符5、字符6和字符7 ;可分別得到各字符的寬度,并假設(shè)字符I、字符2和字符3的總寬度小于屏幕寬度,但字符I、字符2、字符3和字符4的總寬度大于屏幕寬度,那么字符I、字符2和字符3將作為一行進(jìn)行顯示,同樣,假設(shè)字符4、字符5和字符6的總寬度小于屏幕寬度,但字符4、字符5、字符6和字符7的總寬度大于屏幕寬度,那么字符4、字符5和字符6將作為另一行進(jìn)行顯示;特殊地,對于剩下的字符7,其寬度可能遠(yuǎn)小于屏幕寬度,直接將其作為一行進(jìn)行顯示即可。上述方式雖然可以實現(xiàn)合理的排版,但也存在一定的問題現(xiàn)有技術(shù)中,通常采用圖形設(shè)備接口(⑶I,Graphics Device Interface)來確定各字符的寬度,實現(xiàn)起來比較慢,尤其是字符很多時,從而降低了排版效率,進(jìn)而降低了頁面渲染速度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供兩種文本內(nèi)容排版方法,能夠提高排版效率。本發(fā)明的另一目的在于提供兩種終端,能夠提高排版效率。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種文本內(nèi)容排版方法,包括A、估計終端屏幕上一行最多能夠顯示的字符數(shù)charcount ;B、利用圖形設(shè)備接口⑶I確定待顯示的字符串中的前charcount個字符的總寬度,并確定所述總寬度是否等于屏幕寬度,如果是,則將前charcount個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行步驟B;否則,對charcount的取值進(jìn)行調(diào)整,得到charcount’,當(dāng)出現(xiàn)前charcount’個字符的總寬度小于或等于所述屏幕寬度,前charcount’ +1個字符的總寬度大于所述屏幕寬度的情況時,將前charcount’個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行步驟B ;當(dāng)待顯示的字符串的總寬度小于所述屏幕寬度時,將待顯示的字符串作為一行顯示到終端屏幕上,結(jié)束流程。一種文本內(nèi)容排版方法,包括針對待顯示的字符串中的每個字符,分別確定其所屬類型,所述類型包括漢字類型、美國信息互換標(biāo)準(zhǔn)代碼ASCII類型以及其它類型;如果是漢字類型或ASCII類型,則利 用非圖形設(shè)備接口 GDI方式確定其寬度,如果是其它類型,則利用GDI確定其寬度;按照確定出的各字符的寬度將所述字符串分行顯示到終端屏幕上,每一行中的字符的總寬度均小于或等于屏幕寬度。一種終端,包括第一處理單元,用于估計終端屏幕上一行最多能夠顯示的字符數(shù)charcount ;第二處理單元,用于利用圖形設(shè)備接口⑶I確定待顯示的字符串中的前charcount個字符的總寬度,并確定所述總寬度是否等于屏幕寬度,如果是,則將前charcount個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行自身功能;否則,對charcount的取值進(jìn)行調(diào)整,得到charcount’,當(dāng)出現(xiàn)前charcount’個字符的總寬度小于或等于所述屏幕寬度,前charcount’ +1個字符的總寬度大于所述屏幕寬度的情況時,將前charcount’個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行自身功能;當(dāng)待顯示的字符串的總寬度小于所述屏幕寬度時,將待顯示的字符串作為一行顯示到終端屏幕上,結(jié)束處理。一種終端,包括第三處理單元,用于針對待顯示的字符串中的每個字符,分別確定其所屬類型,所述類型包括漢字類型、美國信息互換標(biāo)準(zhǔn)代碼ASCII類型以及其它類型;如果是漢字類型或ASCII類型,則利用非圖形設(shè)備接口 GDI方式確定其寬度,如果是其它類型,則利用GDI確定其寬度;第四處理單元,用于按照確定出的各字符的寬度將所述字符串分行顯示到終端屏幕上,每一行中的字符的總寬度均小于或等于屏幕寬度??梢钥闯?,本發(fā)明提供了兩種文本內(nèi)容排版方案,對于方案一,由于其無需針對每個字符均利用GDI來確定其寬度,而是針對多個字符一起進(jìn)行確定,因此提高了排版效率;對于方案二,同樣無需針對每個字符均利用GDI來確定其寬度,而是只針對特定類型的字符才利用GDI來確定其寬度,也提高了排版效率。
圖I為本發(fā)明文本內(nèi)容排版方法第一實施例的流程圖。圖2為本發(fā)明文本內(nèi)容排版方法第二實施例的流程圖。
圖3為本發(fā)明終端第一實施例的組成結(jié)構(gòu)示意圖。圖4為本發(fā)明終端第二實施例的組成結(jié)構(gòu)示意圖。
具體實施例方式
針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明中提出了兩種文本內(nèi)容排版方案,其中方案一中,預(yù)先估計終端屏幕上一行最多能夠顯示的字符數(shù),并根據(jù)估計結(jié)果以及實際情況對各行實際能夠顯示的字符數(shù)進(jìn)行調(diào)整;方案二中,針對待顯示的字符串中的每個字符,在確定其寬度時,首先確定其類型,并根據(jù)類型的不同采用不同的寬度確定方式,包括GDI方式和非GDI方式。無論采用哪種方案,均避免了針對每個字符均利用GDI來確定其寬度,從而提聞了排版效率。為使本發(fā)明的技術(shù)方案更加清楚、明白,以下參照附圖并舉實施例,對本發(fā)明所述 方案作進(jìn)一步地詳細(xì)說明。圖I為本發(fā)明文本內(nèi)容排版方法第一實施例的流程圖。如圖I所示,包括以下步驟步驟11 :估計終端屏幕上一行最多能夠顯示的字符數(shù)charcount。在實際應(yīng)用中,可用屏幕寬度除以一指定字符的寬度,如果計算結(jié)果為整數(shù),則將計算結(jié)果作為所述charcount,否則,將計算結(jié)果向下取整后作為所述charcount。所述指定字符可以是待顯示的字符串中的某一字符,如第一個字符,或者,也可以不是待顯示的字符串中的某一字符,而是一個固定的字符,比如“中國”的“國”字。如果計算結(jié)果不是整數(shù),比如為10. 2或10. 8,那么,本著實際顯示的一行字符的總寬度不能大于屏幕寬度的原則,需要將計算結(jié)果向下取整(10);當(dāng)然,如果計算結(jié)果恰好為整數(shù),則無需向下取整。步驟12 :利用⑶I確定待顯示的字符串中的前charcount個字符的總寬度,并確定所述總寬度是否等于屏幕寬度,如果是,則執(zhí)行步驟13,否則,執(zhí)行步驟14。假設(shè)charcount的取值為10,那么按照現(xiàn)有技術(shù),可直接利用⑶I得到這10個字符的總寬度,無需分別確定10個字符的寬度,然后相加。步驟13 :將前charcount個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行步驟12。步驟14 :對charcount的取值進(jìn)行調(diào)整,得到charcount’,當(dāng)出現(xiàn)前charcount’個字符的總寬度小于或等于屏幕寬度,前charcount’ +1個字符的總寬度大于屏幕寬度的情況時,將前charcount’個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行步驟12。其中,當(dāng)待顯示的字符串的總寬度小于屏幕寬度時,將待顯示的字符串作為一行顯示到終端屏幕上,結(jié)束流程。在實際應(yīng)用中,如果前charcount個字符的總寬度大于屏幕寬度,那么可調(diào)整charcount 白勺取值,得至Ij charcount,,如令 charcount,= charcount_l,如果前 charcount,個字符的總寬度仍大于屏幕寬度,可繼續(xù)調(diào)整,如令charcount’ = charcount’ -I ;反之,如果前charcount個字符的總寬度小于屏幕寬度,那么可令charcount’ = charcount+1,如果前charcount’個字符的總寬度仍小于屏幕寬度,可繼續(xù)調(diào)整,如令charcount’=charcount’ +1 ; 一旦出現(xiàn)前charcount’個字符的總寬度小于或等于屏幕寬度,前charcount’ +1個字符的總寬度大于屏幕寬度的情況,則可停止調(diào)整,并將前charcount’個字符作為一行顯示到終端屏幕上,如何顯示為現(xiàn)有技術(shù)。上述過程可舉例如下假設(shè)待顯示的字符串中共包括32個字符,估計出的charcount的取值為10,那么,首先確定待顯示的字符串中的第I 10個字符的總寬度,并將該總寬度與屏幕寬度進(jìn)行比較,如果兩者恰好相等,那么直接將第I 10個字符作為第一行顯示到終端屏幕上即可,否則(假設(shè)本示例中為這種情況),對Charcount的取值進(jìn)行調(diào)整,假設(shè)當(dāng)調(diào)整為12時符合要求,則將第I 12個字符作為第一行顯示到終端屏幕上;之后,針對第13 32個字符,確 定其中的前10個字符的總寬度,假設(shè)通過比較和調(diào)整,將第13 21個字符作為第二行顯示到終端屏幕上;再之后,針對第22 32個字符,確定其中的前10個字符的總寬度,假設(shè)通過比較和調(diào)整,將第22 29個字符作為第三行顯示到終端屏幕上;最后,將剩下的3個字符作為第四行顯示到終端屏幕上,結(jié)束流程。圖2為本發(fā)明文本內(nèi)容排版方法第二實施例的流程圖。如圖2所示,包括以下步驟步驟21 :針對待顯示的字符串中的每個字符,分別確定其所屬類型,所述類型包括漢字類型、美國信息互換標(biāo)準(zhǔn)代碼(ASCII,American Standard Code for InformationInterchange)類型以及其它類型;如果是漢字類型或ASCII類型,則利用非GDI方式確定其寬度,如果是其它類型,則利用GDI確定其寬度。步驟22 :按照確定出的各字符的寬度將所述字符串分行顯示到終端屏幕上,每一行中的字符的總寬度均小于或等于屏幕寬度。在實際應(yīng)用中,步驟21和22可能是并行執(zhí)行的,圖2所示表示方式僅為了表述方便。本實施例與現(xiàn)有排版方式相比,區(qū)別僅在于確定字符寬度的方式不同,其它相同的部分不再贅述。本實施例中,針對每個字符,首先確定其類型,包括漢字類型、ASCII類型以及其它類型。通常來說,每個字符均由多個,如16個比特組成,其中的前幾個比特,如前2個或前3個比特用于標(biāo)識該字符的類型,那么,可依據(jù)每個字符的前幾個比特來確定其類型。對于漢字類型的字符來說,其寬度是固定的,該固有寬度即為其寬度;對于ASCII類型的字符來說,雖然其寬度不是固定的,但其寬度是明確確定的,因此,可預(yù)先設(shè)置一張表格,該表格中保存有不同的ASCII類型字符各自對應(yīng)的寬度,通過查詢該表格,即可得到所需的字符的寬度;對于其它類型的字符來說,可按照現(xiàn)有方式,利用GDI來獲取其寬度。當(dāng)文本內(nèi)容中存在較多的漢字類型或ASCII類型的字符時,本實施例所述方案尤為適用。至此,即完成了關(guān)于本發(fā)明方法實施例的介紹。基于上述介紹,圖3為本發(fā)明終端第一實施例的組成結(jié)構(gòu)示意圖。如圖3所示,包括第一處理單元31,用于估計終端屏幕上一行最多能夠顯示的字符數(shù)charcount ;第二處理單元32,用于利用⑶I確定待顯示的字符串中的前charcount個字符的總寬度,并確定所述總寬度是否等于屏幕寬度,如果是,則將前charcount個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行自身功能;否則,對charcount的取值進(jìn)行調(diào)整,得到charcount’,當(dāng)出現(xiàn)前charcount’個字符的總寬度小于或等于屏幕寬度,前charcount’ +1個字符的總寬度大于屏幕寬度的情況時,將前charcount’個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行自身功能;當(dāng)待顯示的字符串的總寬度小于所述屏幕寬度時,將待顯示的字符串作為一行顯示到終端屏幕上,結(jié)束處理。其中,第一處理單元31用屏幕寬度除以一指定字符的寬度,如果計算結(jié)果為整數(shù),則將計算結(jié)果作為所述charcount,否則,將計算結(jié)果向下取整后作為所述charcount。圖4為本發(fā)明終端第二實施例的組成結(jié)構(gòu)示意圖。如圖4所示,包括 第三處理單元41,用于針對待顯示的字符串中的每個字符,分別確定其所屬類型,所述類型包括漢字類型、ASCII類型以及其它類型;如果是漢字類型或ASCII類型,則利用非GDI方式確定其寬度,如果是其它類型,則利用GDI確定其寬度;第四處理單元42,用于按照確定出的各字符的寬度將所述字符串分行顯示到終端屏幕上,每一行中的字符的總寬度均小于或等于屏幕寬度。其中,如果一字符的類型為漢字類型,則第三處理單元41將該類型字符的固有寬度作為其寬度;如果該字符的類型為ASCII類型,則第三處理單元41通過查詢預(yù)先設(shè)置的表格來確定其寬度,所述表格中保存有不同的ASCII類型字符各自對應(yīng)的寬度。在實際應(yīng)用中,上述各實施例中的終端通常為手機。圖3和4所示終端實施例的具體工作流程請參照圖I和2所示方法實施例中的相應(yīng)說明,此處不再贅述。實測證明,本發(fā)明所述方案能夠較好地提高排版效率。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種文本內(nèi)容排版方法,其特征在于,包括 A、估計終端屏幕上一行最多能夠顯示的字符數(shù)charcount; B、利用圖形設(shè)備接口GDI確定待顯示的字符串中的前charcount個字符的總寬度,并確定所述總寬度是否等于屏幕寬度,如果是,則將前charcount個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行步驟B; 否則,對charcount的取值進(jìn)行調(diào)整,得到charcount’,當(dāng)出現(xiàn)前charcount’個字符的總寬度小于或等于所述屏幕寬度,前charcount’ +1個字符的總寬度大于所述屏幕寬度的情況時,將前charcount’個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行步驟B ; 當(dāng)待顯示的字符串的總寬度小于所述屏幕寬度時,將待顯示的字符串作為一行顯示到終端屏幕上,結(jié)束流程。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述步驟A包括 用所述屏幕寬度除以一指定字符的寬度,如果計算結(jié)果為整數(shù),則將計算結(jié)果作為所述charcount,否則,將計算結(jié)果向下取整后作為所述charcount。
3.一種文本內(nèi)容排版方法,其特征在于,包括 針對待顯示的字符串中的每個字符,分別確定其所屬類型,所述類型包括漢字類型、美國信息互換標(biāo)準(zhǔn)代碼ASCII類型以及其它類型;如果是漢字類型或ASCII類型,則利用非圖形設(shè)備接口 GDI方式確定其寬度,如果是其它類型,則利用GDI確定其寬度; 按照確定出的各字符的寬度將所述字符串分行顯示到終端屏幕上,每一行中的字符的總寬度均小于或等于屏幕寬度。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述利用非GDI方式確定其寬度包括 如果是漢字類型,則將該類型字符的固有寬度作為其寬度; 如果是ASCII類型,則通過查詢預(yù)先設(shè)置的表格來確定其寬度,所述表格中保存有不同的ASCII類型字符各自對應(yīng)的寬度。
5.一種終端,其特征在于,包括 第一處理單元,用于估計終端屏幕上一行最多能夠顯示的字符數(shù)charcount ; 第二處理單元,用于利用圖形設(shè)備接口⑶I確定待顯示的字符串中的前charcount個字符的總寬度,并確定所述總寬度是否等于屏幕寬度,如果是,則將前charcount個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行自身功能;否則,對charcount的取值進(jìn)行調(diào)整,得到charcount’,當(dāng)出現(xiàn)前charcount’個字符的總寬度小于或等于所述屏幕寬度,前charcount’ +1個字符的總寬度大于所述屏幕寬度的情況時,將前charcount’個字符作為一行顯示到終端屏幕上,然后將剩余的未顯示的字符串作為待顯示的字符串,重復(fù)執(zhí)行自身功能;當(dāng)待顯示的字符串的總寬度小于所述屏幕寬度時,將待顯示的字符串作為一行顯示到終端屏幕上,結(jié)束處理。
6.根據(jù)權(quán)利要求5所述的終端,其特征在于,所述第一處理單元用所述屏幕寬度除以一指定字符的寬度,如果計算結(jié)果為整數(shù),則將計算結(jié)果作為所述charcount,否則,將計算結(jié)果向下取整后作為所述charcount。
7.根據(jù)權(quán)利要求5或6所述的終端,其特征在于,所述終端為手機。
8.—種終端,其特征在于,包括第三處理單元,用于針對待顯示的字符串中的每個字符,分別確定其所屬類型,所述類型包括漢字類型、美國信息互換標(biāo)準(zhǔn)代碼ASCII類型以及其它類型;如果是漢字類型或ASCII類型,則利用非圖形設(shè)備接口 GDI方式確定其寬度,如果是其它類型,則利用GDI確定其寬度; 第四處理單元,用于按照確定出的各字符的寬度將所述字符串分行顯示到終端屏幕上,每一行中的字符的總寬度均小于或等于屏幕寬度。
9.根據(jù)權(quán)利要求8所述的終端,其特征在于,如果一字符的類型為漢字類型,則所述第三處理單元將該類型字符的固有寬度作為其寬度;如果該字符的類型為ASCII類型,則所述第三處理單元通過查詢預(yù)先設(shè)置的表格來確定其寬度,所述表格中保存有不同的ASCII類型字符各自對應(yīng)的寬度。
10.根據(jù)權(quán)利要求8或9所述的終端,其特征在于,所述終端為手機。
全文摘要
本發(fā)明提供了兩種文本內(nèi)容排版方案,其中方案一中,預(yù)先估計終端屏幕上一行最多能夠顯示的字符數(shù),并根據(jù)估計結(jié)果以及實際情況對各行實際能夠顯示的字符數(shù)進(jìn)行調(diào)整;方案二中,針對待顯示的字符串中的每個字符,在確定其寬度時,首先確定其類型,并根據(jù)類型的不同采用不同的寬度確定方式,包括圖形設(shè)備接口(GDI)方式和非GDI方式。無論采用哪種方案,均可提高排版效率。
文檔編號G06F17/21GK102902678SQ201110210479
公開日2013年1月30日 申請日期2011年7月26日 優(yōu)先權(quán)日2011年7月26日
發(fā)明者黃小鵬, 陳磊, 何明 申請人:騰訊科技(深圳)有限公司