所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。通過附圖所示,本發(fā)明的上述及其它目的、特征和優(yōu)勢(shì)將更加清晰。在全部附圖中相同的附圖標(biāo)記指示相同的部分。并未刻意按實(shí)際尺寸等比例縮放繪制附圖,重點(diǎn)在于示出本發(fā)明的主旨。
[0020]圖1-1為本發(fā)明提供的電子閱讀終端的第一種展示效果示意圖;
[0021]圖1-2為本發(fā)明提供的電子閱讀終端的第二種展示效果示意圖;
[0022]圖2為本發(fā)明實(shí)施例提供的頁面排版方法的第一種實(shí)施方法流程圖;
[0023]圖3為本發(fā)明實(shí)施例提供的頁面排版方法的第二種實(shí)施方法流程圖;
[0024]圖4為本發(fā)明實(shí)施例提供的頁面排版方法的第三種實(shí)施方法流程圖
[0025]圖5-1為本發(fā)明提供的示例中將內(nèi)容容器插入頁面容器的顯示示意圖;
[0026]圖5-2為本發(fā)明提供的示例中補(bǔ)充每個(gè)頁面容器空行的顯示示意圖;
[0027]圖5-3為本發(fā)明提供的示例中頁面容器中內(nèi)容偏移后的顯示示意圖;
[0028]圖6為本發(fā)明實(shí)施例提供的頁面排版裝置的第一種實(shí)施方式結(jié)構(gòu)示意圖;
[0029]圖7為本發(fā)明實(shí)施例提供的頁面排版裝置的第二種實(shí)施方式結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0030]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0031]實(shí)施例一
[0032]請(qǐng)參見圖2,該圖示出了本發(fā)明實(shí)施例提供的頁面排版方法的第一種實(shí)施方法流程圖,該頁面排版方法包括如下步驟:
[0033]步驟SlOl:確定終端顯示區(qū)域可以容納的字?jǐn)?shù)。
[0034]本實(shí)施例中,文章字符不同時(shí),確定能夠容納的字?jǐn)?shù)的方式不同,因此,當(dāng)獲取到一篇文章時(shí),首先,確定文章的字符類型,而文章的字符類型通常能夠從文章已知的屬性中直接得到。得到文章的字符類型后,根據(jù)確定的字符類型計(jì)算字符的寬度。具體包括:當(dāng)文章的字符類型為中文時(shí),可以根據(jù)字符的字號(hào)和像素的對(duì)應(yīng)關(guān)系,確定每個(gè)字符的寬度,或者根據(jù)經(jīng)驗(yàn)值確定,本發(fā)明對(duì)此不做限制;當(dāng)文章為英文字符時(shí),計(jì)算英文字符的平均寬度,在確定字型和字號(hào)后,該平均寬度的確定可以通過計(jì)算26個(gè)字母的平均寬度值,或者計(jì)算寬度最小的字母I和寬度最大的字母W的平均值,作為字母平均寬度。確定每個(gè)字符寬度之后,進(jìn)而根據(jù)終端顯示區(qū)域的寬度,確定每行能夠容納的字?jǐn)?shù),然后,根據(jù)終端顯示區(qū)域的高度,確定能夠容納的行數(shù),從而得到終端顯示區(qū)域可以容納的字?jǐn)?shù)。
[0035]當(dāng)然,本發(fā)明的技術(shù)方案,確定終端顯示區(qū)域可以容納的字?jǐn)?shù)的方式,不限于上述描述,還可以為其他確定方式,本發(fā)明此處不再贅述。
[0036]本實(shí)施例中,首先,確定字符寬度,然后,根據(jù)字符寬度計(jì)算能夠容納的字?jǐn)?shù),能夠不依賴任何語言,從而能夠應(yīng)用于任何語言,應(yīng)用范圍廣。
[0037]步驟S102:根據(jù)終端顯示區(qū)域可以容納的字?jǐn)?shù),將文章分成若干內(nèi)容塊。
[0038]基于上述步驟,終端顯示區(qū)域可以容納的字?jǐn)?shù),S卩,每頁的字?jǐn)?shù),根據(jù)每頁的字?jǐn)?shù)及文章的總字?jǐn)?shù),將文章內(nèi)容分為多個(gè)內(nèi)容塊,每個(gè)內(nèi)容塊即為每頁所顯示的內(nèi)容。例如1000字的文章,每頁可以容納的字?jǐn)?shù)為100,則每100個(gè)字為一個(gè)內(nèi)容塊,該文章能夠劃分為10個(gè)內(nèi)容塊。
[0039]步驟S103:將內(nèi)容塊加載到對(duì)應(yīng)的內(nèi)容容器。
[0040]其中,本步驟中,一個(gè)內(nèi)容容器中對(duì)應(yīng)加載一個(gè)內(nèi)容塊,為了便于對(duì)內(nèi)容塊的管理,為內(nèi)各塊添加內(nèi)各標(biāo)簽。內(nèi)各標(biāo)簽包括起始標(biāo)簽和結(jié)束標(biāo)簽,起始標(biāo)簽通常位于內(nèi)各塊第一個(gè)字符前,用于表不該內(nèi)容塊的開始;結(jié)束標(biāo)簽位于內(nèi)容塊最后一個(gè)字符后,用于表示該內(nèi)容塊的結(jié)束。每個(gè)內(nèi)容塊的起始標(biāo)簽和結(jié)束標(biāo)簽將該內(nèi)容塊包裹,形成該內(nèi)容塊對(duì)應(yīng)的內(nèi)容容器。此外,內(nèi)容標(biāo)簽可以為能夠標(biāo)識(shí)文檔內(nèi)容的、任意已知或者即將出現(xiàn)的標(biāo)識(shí)符,本發(fā)明對(duì)此不做限制。在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,內(nèi)容標(biāo)簽可以為DOM(DocumentObject Model,文件對(duì)象模型)節(jié)點(diǎn),從第一個(gè)字符開始,每100個(gè)字符通過DOM節(jié)點(diǎn)標(biāo)注。每100個(gè)字符的起始DOM節(jié)點(diǎn)和結(jié)束DOM節(jié)點(diǎn)形成該100個(gè)字符的內(nèi)容容器。
[0041 ] 本發(fā)明實(shí)施例中,將內(nèi)容塊容器化,形成對(duì)字符的統(tǒng)一管理,便于對(duì)內(nèi)容的處理,相對(duì)于對(duì)字符處理,能夠節(jié)省處理步驟,而且算法簡單。
[0042]步驟S104:確定當(dāng)前頁面容器及其對(duì)應(yīng)的內(nèi)容容器。
[0043]其中,為了能夠直觀的觀察到每個(gè)頁面的顯示情況,方便對(duì)內(nèi)容塊的排版,在確定文章分頁的數(shù)量之后,創(chuàng)建與文章分頁相同數(shù)量的頁面容器,頁面容器的可見區(qū)域模擬終端顯示區(qū)域設(shè)計(jì)。其中,一個(gè)頁面容器對(duì)應(yīng)一個(gè)內(nèi)容容器,第一個(gè)頁面容器對(duì)應(yīng)第一個(gè)內(nèi)容容器,第二個(gè)頁面容器對(duì)應(yīng)第二個(gè)內(nèi)容容器,以此類推。本步驟中,當(dāng)前頁面容器可以為第一個(gè)頁面容器,那么,當(dāng)前頁面容器對(duì)應(yīng)的內(nèi)容容器即為第一個(gè)內(nèi)容容器。
[0044]步驟S105:將對(duì)應(yīng)內(nèi)容容器插入到頁面容器中。
[0045]其中,內(nèi)容容器中的字符能夠?qū)崿F(xiàn)換行、拉伸對(duì)齊等自然排版。將內(nèi)容容器插入頁面容器后,頁面容器能夠模擬終端顯示區(qū)域,將內(nèi)容容器中的內(nèi)容塊進(jìn)行展示。當(dāng)‘當(dāng)前頁面容器’為第一個(gè)頁面容器時(shí),將第一個(gè)內(nèi)容容器插入當(dāng)前頁面容器后,在當(dāng)前頁面容器中,就能夠直觀的看到第一個(gè)內(nèi)容容器中的內(nèi)容塊,在終端顯示區(qū)域中的展示效果。此外,將內(nèi)容容器中的內(nèi)容塊進(jìn)行自然排版,可以通過CSS (Cascading Style Sheets,層疊樣式表)樣式控制字符進(jìn)行,對(duì)字符進(jìn)行自然排版為本領(lǐng)域技術(shù)人員所熟知的技術(shù)手段,本發(fā)明此處不再贅述。
[0046]需要指出的,將對(duì)應(yīng)內(nèi)容容器插入到頁面容器后,還可以包括,判斷當(dāng)前頁面容器的頁尾是否有空行,當(dāng)‘當(dāng)前頁面容器’頁尾有空行,通過執(zhí)行步驟S106填充當(dāng)前頁面容器頁尾的空行;當(dāng)‘當(dāng)前頁面容器’頁尾無空行,對(duì)當(dāng)前頁面容器執(zhí)行步驟S107.其中,判斷當(dāng)前頁面容器的頁尾是否有空行的具體方法可以為:判斷對(duì)應(yīng)內(nèi)容容器與當(dāng)前頁面容器的高度是否相等,當(dāng)對(duì)應(yīng)內(nèi)容容器與當(dāng)前頁面容器的高度相等時(shí),當(dāng)前頁面容器的頁尾無空行;當(dāng)對(duì)應(yīng)內(nèi)容容器與當(dāng)前頁面容器的高度不相等時(shí),則當(dāng)前頁面容器的頁尾有空行。當(dāng)然,判斷當(dāng)前頁面容器的頁尾是否有空行的方法,還可以為其他方式,本發(fā)明此處不做限制。
[0047]步驟S106:將緊鄰對(duì)應(yīng)內(nèi)容容器的下一個(gè)內(nèi)容容器插入到當(dāng)前頁面容器。
[0048]其中,由于將內(nèi)容塊插入頁面容器后,頁面容器的頁尾部分會(huì)出現(xiàn)空行。為了填充頁面容器的空行,同時(shí),保證該頁面容器中所展示的內(nèi)容的連貫性,將當(dāng)前頁面容器相對(duì)應(yīng)的內(nèi)容容器插入當(dāng)前頁面容器后,再將緊鄰該內(nèi)容容器的下一個(gè)內(nèi)容容器插入當(dāng)前頁面容器的對(duì)應(yīng)內(nèi)容容器之后。需要指出的,為了保證頁面容器中內(nèi)容顯示的連貫性,在插入下一個(gè)內(nèi)容容器前,可以先確定當(dāng)前內(nèi)容容器的結(jié)束標(biāo)簽,根據(jù)該結(jié)束標(biāo)簽將緊鄰該內(nèi)容容器的下一個(gè)內(nèi)容容器插入;優(yōu)選地,可以將緊鄰該結(jié)束標(biāo)簽的下一行的起始位置作為插入下一個(gè)內(nèi)容容器的起始位置,將下一個(gè)內(nèi)容容器的起始標(biāo)簽插入該位置。由于內(nèi)容容器的容器特性,當(dāng)將下一個(gè)內(nèi)容容器插入當(dāng)前頁面容器后,下一個(gè)內(nèi)容容器中的第一行在當(dāng)前頁面容器中空行的第一行顯示。
[0049]此外,由于當(dāng)前頁面容器中,僅在頁尾部分存在空行,因此,緊鄰的下一個(gè)內(nèi)容容器插入后,只顯示部分內(nèi)容,其他部分位于當(dāng)前頁面容器的不可見區(qū)域內(nèi),因此,無法顯示。
[0050]此外,為了保證與當(dāng)前頁面容器對(duì)應(yīng)的內(nèi)容容器在最后一行顯示時(shí)為一個(gè)整行,確定內(nèi)容塊時(shí),可以將最后一行的幾個(gè)字符劃分到下一個(gè)內(nèi)容容器。本發(fā)明對(duì)具體劃分方法不再贅述。
[0051]步驟S107:對(duì)當(dāng)前頁面容器進(jìn)行排版。
[0052]其中,當(dāng)‘當(dāng)前頁面容器’為第一個(gè)內(nèi)容容器時(shí),對(duì)當(dāng)前頁面容器的排版已經(jīng)完成。由于當(dāng)前頁面容器所顯示的內(nèi)容,與緊鄰的下一個(gè)頁面容器所顯示的內(nèi)容有部分重復(fù),還需要計(jì)算該重復(fù)部分的偏移量,以便于根據(jù)該偏移量對(duì)下一個(gè)頁面容器進(jìn)行排版。
[0053]由上述實(shí)施例可知,本發(fā)明實(shí)施例提供的頁面排版方法,將文章分頁得到的若干內(nèi)容塊,并將內(nèi)容塊加載到對(duì)應(yīng)的內(nèi)容容器中。在確定當(dāng)前頁面容器及其對(duì)應(yīng)的內(nèi)容容器后,將所述內(nèi)容容器插入到頁面容器中。由于當(dāng)前頁面容器頁尾部分存在空行,除最后一個(gè)頁面容器,通過將緊鄰所述對(duì)應(yīng)內(nèi)容容器的下一個(gè)內(nèi)容容器插入到當(dāng)前頁面容器,填充當(dāng)前頁面容器的空行。與現(xiàn)有技術(shù)相比,當(dāng)分頁后頁面中存在空行時(shí),能夠