終端、版式文檔內(nèi)容描述優(yōu)化裝置和方法
【專利摘要】本發(fā)明提供了一種版式文檔內(nèi)容描述優(yōu)化裝置、一種終端和一種版式文檔內(nèi)容描述優(yōu)化方法,其中版式文檔內(nèi)容描述優(yōu)化裝置包括:解析單元,解析原始版式文檔內(nèi)容,得到文本圖元數(shù)據(jù);識(shí)別單元,識(shí)別出文本圖元數(shù)據(jù)中每一字符的文本屬性;文字節(jié)點(diǎn)歸類單元,按照文本屬性對(duì)文本圖元數(shù)據(jù)中的字符進(jìn)行歸類,將具有相同文本屬性的字符與相同文本屬性保存至同一個(gè)文字節(jié)點(diǎn);文字內(nèi)容節(jié)點(diǎn)歸類單元,針對(duì)每一文字節(jié)點(diǎn)中保存的字符,將屬于同一行或同一列的字符、同一行或同一列的起始字符的坐標(biāo)、同一行或同一列的平均字間距保存至文字內(nèi)容節(jié)點(diǎn),以得到優(yōu)化后的版式文檔內(nèi)容。可實(shí)現(xiàn)使用盡可能少的數(shù)據(jù)來(lái)描述盡可能多的文本內(nèi)容,以減小版式文檔的體積。
【專利說(shuō)明】終端、版式文檔內(nèi)容描述優(yōu)化裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體而言,涉及一種版式文檔內(nèi)容描述優(yōu)化裝置、具有該版式文檔內(nèi)容描述優(yōu)化裝置的終端和一種版式文檔內(nèi)容描述優(yōu)化方法。
【背景技術(shù)】
[0002]在版式文檔的內(nèi)容中,文本是十分重要的一部分。版式文檔中對(duì)文本內(nèi)容的描述方式不同,其解析效率、顯示效果以及文件體積也會(huì)不同。版式文檔中對(duì)于文本內(nèi)容的保存方式,最簡(jiǎn)單一種就是直接保存每一個(gè)字符的坐標(biāo)和文字信息。這種方式實(shí)現(xiàn)簡(jiǎn)單,保存方便;但是,版式文檔中的文本數(shù)據(jù)數(shù)量巨大,使用這種方式保存文本內(nèi)容,需要保存的坐標(biāo)和文字信息也相應(yīng)的會(huì)占用很大的數(shù)據(jù)量,從而使得文本內(nèi)容的描述存在大量的冗余信息,文檔體積增大。
[0003]因此,需要一種簡(jiǎn)單可行的且可減小文檔體積的版式文檔內(nèi)容描述技術(shù)。
【發(fā)明內(nèi)容】
[0004]考慮到相關(guān)技術(shù)中出現(xiàn)的技術(shù)問(wèn)題,本發(fā)明所要解決的技術(shù)問(wèn)題在于,提供一種版式文檔內(nèi)容描述優(yōu)化技術(shù),可實(shí)現(xiàn)使用盡可能少的數(shù)據(jù)來(lái)描述盡可能多的文本內(nèi)容,從而減小版式文檔的體積。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供了一種版式文檔內(nèi)容描述優(yōu)化裝置,包括:解析單元,用于解析原始版式文檔內(nèi)容,得到文本圖元數(shù)據(jù);識(shí)別單元,用于識(shí)別出所述文本圖元數(shù)據(jù)中每一字符的文本屬性;文字節(jié)點(diǎn)歸類單元,用于按照所述文本屬性對(duì)所述文本圖元數(shù)據(jù)中的字符進(jìn)行歸類,將具有相同文本屬性的字符與所述相同文本屬性保存至同一個(gè)文字節(jié)點(diǎn);文字內(nèi)容節(jié)點(diǎn)歸類單元,用于針對(duì)每一所述文字節(jié)點(diǎn)中保存的字符,將屬于同一行或同一列的字符、所述同一行或所述同一列的起始字符的坐標(biāo)、所述同一行或所述同一列的平均字間距保存至文字內(nèi)容節(jié)點(diǎn),以得到優(yōu)化后的版式文檔內(nèi)容,其中,所述文字內(nèi)容節(jié)點(diǎn)是位于所述文字節(jié)點(diǎn)下的且與所述同一行或所述同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0006]將具有相同文本屬性的字符保存在同一個(gè)文字節(jié)點(diǎn)中,同時(shí)在該文字節(jié)點(diǎn)中保存相應(yīng)的文本屬性;將文本屬性相同,并且處于同一行(列)的字符保存在同一個(gè)文字內(nèi)容節(jié)點(diǎn)中,使用起始字符坐標(biāo)和字間距結(jié)合的方式來(lái)表示多個(gè)文字的版式位置信息,從而使得版式文檔對(duì)于文本內(nèi)容的描述方式進(jìn)行簡(jiǎn)化,減少文本描述數(shù)據(jù)的冗余,減小版式文檔的體積。
[0007]在上述技術(shù)方案中,優(yōu)選的,所述文字節(jié)點(diǎn)歸類單元包括:第一判斷子單元,用于針對(duì)所述文本圖元數(shù)據(jù)中每一行或每一列的字符,判斷當(dāng)前字符的文本屬性與相鄰字符的文本屬性是否相同,所述文字節(jié)點(diǎn)歸類單元在所述第一判斷子單元的判斷結(jié)果為相同時(shí),將所述當(dāng)前字符保存至與所述相鄰字符相對(duì)應(yīng)的文字節(jié)點(diǎn)中。
[0008]在建立文字節(jié)點(diǎn)時(shí),逐一判定文本圖元數(shù)據(jù)中的字符屬于哪種文本屬性,將具有相同文本屬性的字符歸類放在一個(gè)文字節(jié)點(diǎn)中,如果文本屬性有8種,則相對(duì)于該文本圖元數(shù)據(jù)的文字節(jié)點(diǎn)為8個(gè)。
[0009]在上述技術(shù)方案中,優(yōu)選的,所述文字節(jié)點(diǎn)歸類單元還可以包括:第一創(chuàng)建子單元,在所述判斷結(jié)果為不相同時(shí),新建文字節(jié)點(diǎn),將所述當(dāng)前字符保存至新建的文字節(jié)點(diǎn)。
[0010]在上述技術(shù)方案中,優(yōu)選的,所述文字內(nèi)容節(jié)點(diǎn)歸類單元包括:計(jì)算子單元,用于針對(duì)每一所述文字節(jié)點(diǎn)中的字符,緩存屬于同一行或同一列的字符,計(jì)算所述同一行或同一列的字符之間的所述平均字間距和實(shí)際字間距;第二判斷子單元,用于將連續(xù)確定的實(shí)際字間距與所述平均字間距之間的差值連續(xù)小于等于預(yù)設(shè)值的字符加入至所述文字內(nèi)容節(jié)點(diǎn),并將所述平均字間距和第一個(gè)加入所述文字內(nèi)容節(jié)點(diǎn)中的字符的坐標(biāo)保存至所述文字內(nèi)容節(jié)點(diǎn);第二創(chuàng)建子單元,用于將實(shí)際字間距與所述平均字間距之間的差值大于預(yù)設(shè)值的字符加入至新建的且與所述同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0011]在建立好文字節(jié)點(diǎn)后,針對(duì)每一文字節(jié)點(diǎn),進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類。在進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類時(shí),首先分析該文字節(jié)點(diǎn)中屬于同一行或同一列的字符,計(jì)算出該行或該列的平均字間距,將該行或該列中的實(shí)際字間距接近或等于平均字間距的字符加入至與該行或該列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)中,并將該行或該列中的其余字符加入至新建的文字內(nèi)容節(jié)點(diǎn)中。這樣,針對(duì)每個(gè)文字節(jié)點(diǎn),根據(jù)字符間距情況將該文字節(jié)點(diǎn)中的字符歸納至一個(gè)或多個(gè)文字內(nèi)容節(jié)點(diǎn)中,并且每個(gè)文字內(nèi)容節(jié)點(diǎn)中需保存第一個(gè)字符的坐標(biāo)和字間距。這樣就可以確定每一個(gè)文字內(nèi)容節(jié)點(diǎn)中每一個(gè)字符的坐標(biāo)位置,而無(wú)需保存每一個(gè)字符的文本屬性和坐標(biāo)位置,大大減少了冗余信息,從而減小了文本體積。
[0012]在上述任一技術(shù)方案中,優(yōu)選的,所述文本屬性包括字體名稱、字符大小和/或字符顏色。
[0013]根據(jù)本發(fā)明的另一方面,還提供了一種終端,包括如上述任一技術(shù)方案中所述的版式文檔內(nèi)容描述優(yōu)化裝置,還可以包括:顯示單元,在顯示經(jīng)過(guò)所述版式文檔內(nèi)容描述優(yōu)化裝置優(yōu)化后的版式文檔內(nèi)容時(shí),基于文字節(jié)點(diǎn)的文本屬性、以及所述文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中包含的行或列的平均字間距和首字符坐標(biāo),確定所述版式文檔內(nèi)容中每一字符的顯示位置和所需顯示的文本屬性。
[0014]在顯示文檔內(nèi)容時(shí),將屬于同一文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中的字符按照該文字節(jié)點(diǎn)的文本屬性進(jìn)行顯示,并且基于文字內(nèi)容節(jié)點(diǎn)中保存的第一個(gè)字符的坐標(biāo)和字間距可推算出其余字符的位置,從而可正確顯示文檔內(nèi)容。
[0015]根據(jù)本發(fā)明的又一方面,還提供了一種版式文檔內(nèi)容描述優(yōu)化方法,包括:解析原始版式文檔內(nèi)容,得到文本圖元數(shù)據(jù);識(shí)別出所述文本圖元數(shù)據(jù)中每一字符的文本屬性,并按照所述文本屬性對(duì)所述文本圖元數(shù)據(jù)中的字符進(jìn)行歸類,將具有相同文本屬性的字符與所述相同文本屬性保存至同一個(gè)文字節(jié)點(diǎn);針對(duì)每一所述文字節(jié)點(diǎn)中保存的字符,將屬于同一行或同一列的字符、所述同一行或所述同一列的起始字符的坐標(biāo)、所述同一行或所述同一列的平均字間距保存至文字內(nèi)容節(jié)點(diǎn),以得到優(yōu)化后的版式文檔內(nèi)容,其中,所述文字內(nèi)容節(jié)點(diǎn)是位于所述文字節(jié)點(diǎn)下的且與所述同一行或所述同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0016]將具有相同文本屬性的字符保存在同一個(gè)文字節(jié)點(diǎn)中,同時(shí)在該文字節(jié)點(diǎn)中保存相應(yīng)的文本屬性;將文本屬性相同,并且處于同一行(列)的字符保存在同一個(gè)文字內(nèi)容節(jié)點(diǎn)中,使用起始字符坐標(biāo)和字間距結(jié)合的方式來(lái)表示多個(gè)文字的版式位置信息,從而使得版式文檔對(duì)于文本內(nèi)容的描述方式進(jìn)行簡(jiǎn)化,減少文本描述數(shù)據(jù)的冗余,減小版式文檔的體積。
[0017]在上述技術(shù)方案中,優(yōu)選的,所述字符的歸類方法可以包括:針對(duì)所述文本圖元數(shù)據(jù)中每一行或每一列的字符,判斷當(dāng)前字符的文本屬性與相鄰字符的文本屬性是否相同;在判斷結(jié)果為相同時(shí),將所述當(dāng)前字符保存至與所述相鄰字符相對(duì)應(yīng)的文字節(jié)點(diǎn)中。
[0018]在建立文字節(jié)點(diǎn)時(shí),逐一判定文本圖元數(shù)據(jù)中的字符屬于哪種文本屬性,將具有相同文本屬性的字符歸類放在一個(gè)文字節(jié)點(diǎn)中,如果文本屬性有8種,則相對(duì)于該文本圖元數(shù)據(jù)的文字節(jié)點(diǎn)為8個(gè)。
[0019]在上述技術(shù)方案中,優(yōu)選的,在所述判斷結(jié)果為不相同時(shí),新建文字節(jié)點(diǎn),將所述當(dāng)前字符保存至新建的文字節(jié)點(diǎn)。
[0020]在上述技術(shù)方案中,優(yōu)選的,所述文字內(nèi)容節(jié)點(diǎn)的生成方法包括:針對(duì)每一所述文字節(jié)點(diǎn)中的字符,緩存屬于同一行或同一列的字符;計(jì)算所述同一行或同一列的字符之間的所述平均字間距和實(shí)際字間距;將連續(xù)確定的實(shí)際字間距與所述平均字間距之間的差值連續(xù)小于等于預(yù)設(shè)值的字符加入至所述文字內(nèi)容節(jié)點(diǎn),并將平均字間距和第一個(gè)加入所述文字內(nèi)容節(jié)點(diǎn)中的字符的坐標(biāo)保存至所述文字內(nèi)容節(jié)點(diǎn);將實(shí)際字間距與所述平均字間距之間的差值大于預(yù)設(shè)值的字符加入至新建的且與所述同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0021]在建立好文字節(jié)點(diǎn)后,針對(duì)每一文字節(jié)點(diǎn),進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類。在進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類時(shí),首先分析該文字節(jié)點(diǎn)中屬于同一行或同一列的字符,計(jì)算出該行或該列的平均字間距,將該行或該列中的實(shí)際字間距接近或等于平均字間距的字符加入至與該行或該列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)中,并將該行或該列中的其余字符加入至新建的文字內(nèi)容節(jié)點(diǎn)中。這樣,針對(duì)每個(gè)文字節(jié)點(diǎn),根據(jù)字符間距情況將該文字節(jié)點(diǎn)中的字符歸納至一個(gè)或多個(gè)文字內(nèi)容節(jié)點(diǎn)中,并且每個(gè)文字內(nèi)容節(jié)點(diǎn)中需保存第一個(gè)字符的坐標(biāo)和字間距。這樣就可以確定每一個(gè)文字內(nèi)容節(jié)點(diǎn)中每一個(gè)字符的坐標(biāo)位置,而無(wú)需保存每一個(gè)字符的文本屬性和坐標(biāo)位置,大大減少了冗余信息,從而減小了文本體積。
[0022]在上述任一技術(shù)方案中,優(yōu)選的,所述文本屬性包括字體名稱、字符大小和/或字符顏色。
[0023]在上述任一技術(shù)方案中,優(yōu)選的,在顯示進(jìn)行優(yōu)化后的版式文檔內(nèi)容時(shí),基于所述文字節(jié)點(diǎn)的文本屬性、以及所述文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中包含的行或列的平均字間距和首字符坐標(biāo),確定所述版式文檔內(nèi)容中每一字符的顯示位置和所需顯示的文本屬性。
[0024]在顯示文檔內(nèi)容時(shí),將屬于同一文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中的字符按照該文字節(jié)點(diǎn)的文本屬性進(jìn)行顯示,并且基于文字內(nèi)容節(jié)點(diǎn)中保存的第一個(gè)字符的坐標(biāo)和字間距可推算出其余字符的位置,從而可正確顯示文檔內(nèi)容。
【專利附圖】
【附圖說(shuō)明】
[0025]圖1示出了根據(jù)本發(fā)明的實(shí)施例的版式文檔內(nèi)容描述優(yōu)化裝置的框圖;
[0026]圖2示出了根據(jù)本發(fā)明的實(shí)施例的終端的示意圖;
[0027]圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的版式文檔內(nèi)容描述優(yōu)化方法的流程圖;
[0028]圖4示出了根據(jù)本發(fā)明的另一實(shí)施例的版式文檔內(nèi)容描述優(yōu)化方法的流程圖;
[0029]圖5示出了根據(jù)本發(fā)明的實(shí)施例的根據(jù)文本屬性進(jìn)行字符歸類的流程圖;
[0030]圖6示出了根據(jù)本發(fā)明的實(shí)施例的進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類的流程圖;
[0031]圖7示出了根據(jù)本發(fā)明的實(shí)施例的版式文檔內(nèi)容的保存方法流程圖。
【具體實(shí)施方式】
[0032]為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0033]在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明并不限于下面公開(kāi)的具體實(shí)施例的限制。
[0034]圖1示出了根據(jù)本發(fā)明的實(shí)施例的版式文檔內(nèi)容描述優(yōu)化裝置的框圖。
[0035]如圖1所示,根據(jù)本發(fā)明的實(shí)施例的版式文檔內(nèi)容描述優(yōu)化裝置100,包括:解析單元102,用于解析原始版式文檔內(nèi)容,得到文本圖元數(shù)據(jù);識(shí)別單元104,用于識(shí)別出文本圖元數(shù)據(jù)中每一字符的文本屬性;文字節(jié)點(diǎn)歸類單元106,用于按照文本屬性對(duì)文本圖元數(shù)據(jù)中的字符進(jìn)行歸類,將具有相同文本屬性的字符與相同文本屬性保存至同一個(gè)文字節(jié)點(diǎn);文字內(nèi)容節(jié)點(diǎn)歸類單元108,用于針對(duì)每一文字節(jié)點(diǎn)中保存的字符,將屬于同一行或同一列的字符、同一行或同一列的起始字符的坐標(biāo)、同一行或同一列的平均字間距保存至文字內(nèi)容節(jié)點(diǎn),以得到優(yōu)化后的版式文檔內(nèi)容,其中,文字內(nèi)容節(jié)點(diǎn)是位于文字節(jié)點(diǎn)下的且與同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0036]將具有相同文本屬性的字符保存在同一個(gè)文字節(jié)點(diǎn)中,同時(shí)在該文字節(jié)點(diǎn)中保存相應(yīng)的文本屬性;將文本屬性相同,并且處于同一行(列)的字符保存在同一個(gè)文字內(nèi)容節(jié)點(diǎn)中,使用起始字符坐標(biāo)和字間距結(jié)合的方式來(lái)表示多個(gè)文字的版式位置信息,從而使得版式文檔對(duì)于文本內(nèi)容的描述方式進(jìn)行簡(jiǎn)化,減少文本描述數(shù)據(jù)的冗余,減小版式文檔的體積。
[0037]在上述技術(shù)方案中,優(yōu)選的,文字節(jié)點(diǎn)歸類單元106包括:第一判斷子單元1062,用于針對(duì)文本圖元數(shù)據(jù)中每一行或每一列的字符,判斷當(dāng)前字符的文本屬性與相鄰字符的文本屬性是否相同,文字節(jié)點(diǎn)歸類單元在第一判斷子單元1062的判斷結(jié)果為相同時(shí),將當(dāng)前字符保存至與相鄰字符相對(duì)應(yīng)的文字節(jié)點(diǎn)中。
[0038]在建立文字節(jié)點(diǎn)時(shí),逐一判定文本圖元數(shù)據(jù)中的字符屬于哪種文本屬性,將具有相同文本屬性的字符歸類放在一個(gè)文字節(jié)點(diǎn)中,如果文本屬性有8種,則相對(duì)于該文本圖元數(shù)據(jù)的文字節(jié)點(diǎn)為8個(gè)。
[0039]優(yōu)選的,文字節(jié)點(diǎn)歸類單元106還可以包括:第一創(chuàng)建子單元1064,在判斷結(jié)果為不相同時(shí),新建文字節(jié)點(diǎn),將當(dāng)前字符保存至新建的文字節(jié)點(diǎn)。
[0040]在上述技術(shù)方案中,優(yōu)選的,文字內(nèi)容節(jié)點(diǎn)歸類單元108包括:計(jì)算子單元1082,用于針對(duì)每一文字節(jié)點(diǎn)中的字符,緩存屬于同一行或同一列的字符,計(jì)算同一行或同一列的字符之間的平均字間距和實(shí)際字間距;第二判斷子單元1084,用于將連續(xù)確定的實(shí)際字間距與平均字間距之間的差值連續(xù)小于等于預(yù)設(shè)值的字符加入至文字內(nèi)容節(jié)點(diǎn),并將平均字間距和第一個(gè)加入文字內(nèi)容節(jié)點(diǎn)中的字符的坐標(biāo)保存至文字內(nèi)容節(jié)點(diǎn);第二創(chuàng)建子單元1086,用于將實(shí)際字間距與平均字間距之間的差值大于預(yù)設(shè)值的字符加入至新建的且與同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0041]在建立好文字節(jié)點(diǎn)后,針對(duì)每一文字節(jié)點(diǎn),進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類。在進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類時(shí),首先分析該文字節(jié)點(diǎn)中屬于同一行或同一列的字符,計(jì)算出該行或該列的平均字間距,將該行或該列中的實(shí)際字間距接近或等于平均字間距的字符加入至與該行或該列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)中,并將該行或該列中的其余字符加入至新建的文字內(nèi)容節(jié)點(diǎn)中。這樣,針對(duì)每個(gè)文字節(jié)點(diǎn),根據(jù)字符間距情況將該文字節(jié)點(diǎn)中的字符歸納至一個(gè)或多個(gè)文字內(nèi)容節(jié)點(diǎn)中,并且每個(gè)文字內(nèi)容節(jié)點(diǎn)中需保存第一個(gè)字符的坐標(biāo)和字間距。這樣就可以確定每一個(gè)文字內(nèi)容節(jié)點(diǎn)中每一個(gè)字符的坐標(biāo)位置,而無(wú)需保存每一個(gè)字符的文本屬性和坐標(biāo)位置,大大減少了冗余信息,從而減小了文本體積。
[0042]在上述任一技術(shù)方案中,優(yōu)選的,文本屬性包括字體名稱、字符大小和/或字符顏色。
[0043]圖2示出了根據(jù)本發(fā)明的實(shí)施例的終端的示意圖。
[0044]如圖2所示,根據(jù)本發(fā)明的實(shí)施例的終端200,包括如上述任一技術(shù)方案中的版式文檔內(nèi)容描述優(yōu)化裝置100,還可以包括:顯示單元202,在顯示經(jīng)過(guò)版式文檔內(nèi)容描述優(yōu)化裝置優(yōu)化后的版式文檔內(nèi)容時(shí),基于文字節(jié)點(diǎn)的文本屬性、以及文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中包含的行或列的平均字間距和首字符坐標(biāo),確定版式文檔內(nèi)容中每一字符的顯示位置和所需顯示的文本屬性。
[0045]在顯示文檔內(nèi)容時(shí),將屬于同一文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中的字符按照該文字節(jié)點(diǎn)的文本屬性進(jìn)行顯示,并且基于文字內(nèi)容節(jié)點(diǎn)中保存的第一個(gè)字符的坐標(biāo)和字間距可推算出其余字符的位置,從而可正確顯示文檔內(nèi)容。
[0046]圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的版式文檔內(nèi)容描述優(yōu)化方法的流程圖。
[0047]如圖3所示,根據(jù)本發(fā)明的實(shí)施例的版式文檔內(nèi)容描述優(yōu)化方法,可以包括以下步驟:
[0048]步驟302,解析原始版式文檔內(nèi)容,得到文本圖元數(shù)據(jù);步驟304,識(shí)別出文本圖元數(shù)據(jù)中每一字符的文本屬性,并按照文本屬性對(duì)文本圖元數(shù)據(jù)中的字符進(jìn)行歸類,將具有相同文本屬性的字符與相同文本屬性保存至同一個(gè)文字節(jié)點(diǎn);步驟306,針對(duì)每一文字節(jié)點(diǎn)中保存的字符,將屬于同一行或同一列的字符、同一行或同一列的起始字符的坐標(biāo)、同一行或同一列的平均字間距保存至文字內(nèi)容節(jié)點(diǎn),以得到優(yōu)化后的版式文檔內(nèi)容,其中,文字內(nèi)容節(jié)點(diǎn)是位于文字節(jié)點(diǎn)下的且與同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0049]將具有相同文本屬性的字符保存在同一個(gè)文字節(jié)點(diǎn)中,同時(shí)在該文字節(jié)點(diǎn)中保存相應(yīng)的文本屬性;將文本屬性相同,并且處于同一行(列)的字符保存在同一個(gè)文字內(nèi)容節(jié)點(diǎn)中,使用起始字符坐標(biāo)和字間距結(jié)合的方式來(lái)表示多個(gè)文字的版式位置信息,從而使得版式文檔對(duì)于文本內(nèi)容的描述方式進(jìn)行簡(jiǎn)化,減少文本描述數(shù)據(jù)的冗余,減小版式文檔的體積。
[0050]在所述步驟304中,字符的歸類方法可以包括:針對(duì)文本圖元數(shù)據(jù)中每一行或每一列的字符,判斷當(dāng)前字符的文本屬性與相鄰字符的文本屬性是否相同;在判斷結(jié)果為相同時(shí),將當(dāng)前字符保存至與相鄰字符相對(duì)應(yīng)的文字節(jié)點(diǎn)中。
[0051]在建立文字節(jié)點(diǎn)時(shí),逐一判定文本圖元數(shù)據(jù)中的字符屬于哪種文本屬性,將具有相同文本屬性的字符歸類放在一個(gè)文字節(jié)點(diǎn)中,如果文本屬性有8種,則相對(duì)于該文本圖元數(shù)據(jù)的文字節(jié)點(diǎn)為8個(gè)。
[0052]在上述技術(shù)方案中,優(yōu)選的,在判斷結(jié)果為不相同時(shí),新建文字節(jié)點(diǎn),將當(dāng)前字符保存至新建的文字節(jié)點(diǎn)。
[0053]在所述步驟306中,文字內(nèi)容節(jié)點(diǎn)的生成方法包括:針對(duì)每一文字節(jié)點(diǎn)中的字符,緩存屬于同一行或同一列的字符;計(jì)算同一行或同一列的字符之間的平均字間距和實(shí)際字間距;將連續(xù)確定的實(shí)際字間距與平均字間距之間的差值連續(xù)小于等于預(yù)設(shè)值的字符加入至文字內(nèi)容節(jié)點(diǎn),并將第一個(gè)加入文字內(nèi)容節(jié)點(diǎn)中的字符的坐標(biāo)保存至文字內(nèi)容節(jié)點(diǎn);將實(shí)際字間距與平均字間距之間的差值大于預(yù)設(shè)值的字符加入至新建的且與同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
[0054]在建立好文字節(jié)點(diǎn)后,針對(duì)每一文字節(jié)點(diǎn),進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類。在進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類時(shí),首先分析該文字節(jié)點(diǎn)中屬于同一行或同一列的字符,計(jì)算出該行或該列的平均字間距,將該行或該列中的實(shí)際字間距接近或等于平均字間距的字符加入至與該行或該列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)中,并將該行或該列中的其余字符加入至新建的文字內(nèi)容節(jié)點(diǎn)中。這樣,針對(duì)每個(gè)文字節(jié)點(diǎn),根據(jù)字符間距情況將該文字節(jié)點(diǎn)中的字符歸納至一個(gè)或多個(gè)文字內(nèi)容節(jié)點(diǎn)中,并且每個(gè)文字內(nèi)容節(jié)點(diǎn)中需保存第一個(gè)字符的坐標(biāo)和字間距。這樣就可以確定每一個(gè)文字內(nèi)容節(jié)點(diǎn)中每一個(gè)字符的坐標(biāo)位置,而無(wú)需保存每一個(gè)字符的文本屬性和坐標(biāo)位置,大大減少了冗余信息,從而減小了文本體積。
[0055]在上述任一技術(shù)方案中,優(yōu)選的,文本屬性包括字體名稱、字符大小和/或字符顏色。
[0056]在上述任一技術(shù)方案中,優(yōu)選的,在顯示進(jìn)行優(yōu)化后的版式文檔內(nèi)容時(shí),基于文字節(jié)點(diǎn)的文本屬性、以及文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中包含的行或列的平均字間距和首字符坐標(biāo),確定版式文檔內(nèi)容中每一字符的顯示位置和所需顯示的文本屬性。
[0057]在顯示文檔內(nèi)容時(shí),將屬于同一文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中的字符按照該文字節(jié)點(diǎn)的文本屬性進(jìn)行顯示,并且基于文字內(nèi)容節(jié)點(diǎn)中保存的第一個(gè)字符的坐標(biāo)和字間距可推算出其余字符的位置,從而可正確顯示文檔內(nèi)容。
[0058]下面結(jié)合圖4至圖7進(jìn)一步說(shuō)明根據(jù)本發(fā)明的版式文檔內(nèi)容描述優(yōu)化方法。圖4示出了根據(jù)本發(fā)明的另一實(shí)施例的版式文檔內(nèi)容描述優(yōu)化方法的流程圖。
[0059]如圖4所示,步驟402,利用解析引擎對(duì)原始文檔進(jìn)行解析。步驟404,獲取原始文檔圖元數(shù)據(jù)。
[0060]步驟406,判斷該原始文檔圖元數(shù)據(jù)是否是文本,如果是,則進(jìn)入步驟408,否則進(jìn)入步驟414,依據(jù)圖元類型進(jìn)行相應(yīng)處理。
[0061]步驟408,緩存文本屬性相同的文字,文本屬性包括:字體名稱、字號(hào)大小、字體顏色等。具體方法是:比較文本圖元的字體、字號(hào)、文字顏色等屬性是否相同,如果相同,則這些文字保存在同一個(gè)文字節(jié)點(diǎn)中;如果不滿足以上條件,則保存在不同的文字節(jié)點(diǎn)中,參考圖5。
[0062]步驟410,緩存可以保存在同一個(gè)文字節(jié)點(diǎn)中的文字。具體方法是:從文本屬性相同的文字中,緩存位于同一行(列)的文字,計(jì)算緩存文字的平均字間距和實(shí)際字間距,以平均字間距作為比較基準(zhǔn),將字符的實(shí)際字間距與平均字間距進(jìn)行比較,如果誤差在可接受范圍內(nèi),則可將這些文字保存在同一個(gè)文字內(nèi)容節(jié)點(diǎn)中;如果不滿足以上條件,則保存在不同的文字內(nèi)容節(jié)點(diǎn)中,參考圖6。
[0063]步驟412,最后,在版式文檔中,輸出文字節(jié)點(diǎn)和文字內(nèi)容節(jié)點(diǎn)。
[0064]圖5示出了根據(jù)本發(fā)明的實(shí)施例的根據(jù)文本屬性進(jìn)行字符歸類的流程圖。
[0065]如圖5所示,步驟502,獲取一緩存行或一緩存列中的某個(gè)字符。步驟504,判斷當(dāng)前獲取到的該字符與前一字符的字體是否相同,若相同,則進(jìn)入步驟506,若不相同,則進(jìn)入步驟512。步驟506,判斷當(dāng)前獲取到的該字符與前一字符的字號(hào)是否相等,若相同,則進(jìn)入步驟508,緩存該文本圖元;若不相同,則進(jìn)入所述步驟512,新建一個(gè)文字節(jié)點(diǎn)。
[0066]步驟510,判斷當(dāng)前獲取到的該字符與前一字符的文字顏色是否相同,若相同,則進(jìn)入步驟516,若不相同,則進(jìn)入步驟514,開(kāi)始新文字節(jié)點(diǎn)的數(shù)據(jù)的緩存。
[0067]步驟516,將當(dāng)前字符加入到當(dāng)前文字節(jié)點(diǎn)的緩存字符中。
[0068]在步驟518,判斷是否是最后一個(gè)緩存行或緩存列,若是,則處理結(jié)束,若否,則回到步驟502。
[0069]圖6示出了根據(jù)本發(fā)明的實(shí)施例的進(jìn)行文字內(nèi)容節(jié)點(diǎn)歸類的流程圖。
[0070]如圖6所示,步驟602,獲取文本屬性相同的緩存數(shù)據(jù)。
[0071]步驟604,判斷該緩存數(shù)據(jù)中的當(dāng)前字符與前一字符是否在同一行或同一列,若是,則進(jìn)入步驟606,若否,則進(jìn)入步驟616,創(chuàng)建新的文字內(nèi)容節(jié)點(diǎn)。
[0072]步驟606,緩存屬于同一行或同一列的文本圖元。
[0073]步驟608,計(jì)算同一行或同一列的緩存文本圖元的平均字間距和實(shí)際字間距。
[0074]在步驟610,判斷實(shí)際字間距與平均字間距是否近似。若判斷結(jié)果為是,則進(jìn)入步驟612,若判斷結(jié)果為否,則進(jìn)入步驟616,創(chuàng)建新的文字內(nèi)容節(jié)點(diǎn),將當(dāng)前字符加入到新的文字內(nèi)容節(jié)點(diǎn)的緩存字符中。
[0075]步驟612,將當(dāng)前字符加入到當(dāng)前文字內(nèi)容節(jié)點(diǎn)的緩存字符中。
[0076]步驟614,判斷當(dāng)前字符是否是最后一個(gè)字符,若是,則處理結(jié)束,若否,則回到步驟 602。
[0077]圖7示出了根據(jù)本發(fā)明的實(shí)施例的版式文檔內(nèi)容的保存方法流程圖。
[0078]如圖7所示,步驟702,首先獲取經(jīng)處理已緩存的文本圖元數(shù)據(jù)。
[0079]步驟704,判斷文本圖元數(shù)據(jù)中的文本是否可以屬于同一個(gè)文字節(jié)點(diǎn),即判斷文本圖元數(shù)據(jù)中字符的文本屬性是否相同。若相同,則進(jìn)入步驟706 ;否則,進(jìn)入步驟716,新建文字節(jié)點(diǎn),然后進(jìn)入步驟718,在該新建的文字節(jié)點(diǎn)中保存與該文字節(jié)點(diǎn)對(duì)應(yīng)的文本屬性,文本屬性包括:字體名稱、字號(hào)。
[0080]步驟706,判斷文本是否屬于同一個(gè)文字內(nèi)容節(jié)點(diǎn)(以一緩存行或一緩存列的平均字間距為基準(zhǔn)進(jìn)行判斷),即在文字節(jié)點(diǎn)中為屬于同一個(gè)文字內(nèi)容節(jié)點(diǎn)的文字創(chuàng)建文字內(nèi)容節(jié)點(diǎn),若是,則進(jìn)入步驟708 ;若否,則進(jìn)入步驟720,新建文字內(nèi)容節(jié)點(diǎn),然后進(jìn)入步驟708,保存文字內(nèi)容節(jié)點(diǎn)中第一個(gè)字符的坐標(biāo)位置,以該字符的坐標(biāo)作為該文字內(nèi)容節(jié)點(diǎn)的起始坐標(biāo),并且保存字間距信息,以緩存的同一行/列字符的平均字間距為字間距,最后保存字符的編碼。步驟712,將緩存數(shù)據(jù)寫入文字內(nèi)容節(jié)點(diǎn)中。
[0081]步驟714,判斷緩存數(shù)據(jù)是否保存完畢,若是,則結(jié)束該處理過(guò)程,若否,則回到步驟 702。
[0082]以上結(jié)合附圖詳細(xì)說(shuō)明了根據(jù)本發(fā)明的技術(shù)方案,在相關(guān)版式文檔中,對(duì)于文本內(nèi)容的描述存在大量的冗余信息,對(duì)于每個(gè)字符都要保存坐標(biāo)以及眾多的文字信息,從而使得版式文檔中存在大量冗余數(shù)據(jù),文檔體積增大,為了解決該技術(shù)問(wèn)題,本發(fā)明提出了一種版式文檔內(nèi)容描述優(yōu)化方法。通過(guò)該方法,將具有相同文本屬性的字符保存在同一個(gè)文字節(jié)點(diǎn)中,同時(shí)在文字節(jié)點(diǎn)中保存文本屬性;將文本屬性相同,并且處于同一行(或同一列)的字符保存在同一個(gè)文字內(nèi)容節(jié)點(diǎn)中,使用起始字符坐標(biāo)和字間距結(jié)合的方式來(lái)表示多個(gè)文字的版式位置信息,從而簡(jiǎn)化了版式文檔對(duì)于文本內(nèi)容的描述方式,減少文本描述數(shù)據(jù)的冗余,減小版式文檔的體積。
[0083]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種版式文檔內(nèi)容描述優(yōu)化裝置,其特征在于,包括: 解析單元,用于解析原始版式文檔內(nèi)容,得到文本圖元數(shù)據(jù); 識(shí)別單元,用于識(shí)別出所述文本圖元數(shù)據(jù)中每一字符的文本屬性; 文字節(jié)點(diǎn)歸類單元,用于按照所述文本屬性對(duì)所述文本圖元數(shù)據(jù)中的字符進(jìn)行歸類,將具有相同文本屬性的字符與所述相同文本屬性保存至同一個(gè)文字節(jié)點(diǎn); 文字內(nèi)容節(jié)點(diǎn)歸類單元,用于針對(duì)每一所述文字節(jié)點(diǎn)中保存的字符,將屬于同一行或同一列的字符、所述同一行或所述同一列的起始字符的坐標(biāo)、所述同一行或所述同一列的平均字間距保存至文字內(nèi)容節(jié)點(diǎn),以得到優(yōu)化后的版式文檔內(nèi)容, 其中,所述文字內(nèi)容節(jié)點(diǎn)是位于所述文字節(jié)點(diǎn)下的且與所述同一行或所述同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的版式文檔內(nèi)容描述優(yōu)化裝置,其特征在于,所述文字節(jié)點(diǎn)歸類單元包括: 第一判斷子單元,用于針對(duì)所述文本圖元數(shù)據(jù)中每一行或每一列的字符,判斷當(dāng)前字符的文本屬性與相鄰字符的文本屬性是否相同,所述文字節(jié)點(diǎn)歸類單元在所述第一判斷子單元的判斷結(jié)果為相同時(shí),將所述當(dāng)前字符保存至與所述相鄰字符相對(duì)應(yīng)的文字節(jié)點(diǎn)中。
3.根據(jù)權(quán)利要求2所述的版式文檔內(nèi)容描述優(yōu)化裝置,其特征在于,所述文字節(jié)點(diǎn)歸類單元還包括: 第一創(chuàng)建子單元,在所述判斷結(jié)果為不相同時(shí),新建文字節(jié)點(diǎn),將所述當(dāng)前字符保存至新建的文字節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1所述的版式文檔內(nèi)容描述優(yōu)化裝置,其特征在于,所述文字內(nèi)容節(jié)點(diǎn)歸類單元包括: 計(jì)算子單元,用于針對(duì)每一所述文字節(jié)點(diǎn)中的字符,緩存屬于同一行或同一列的字符,計(jì)算所述同一行或同一列的字符之間的所述平均字間距和實(shí)際字間距; 第二判斷子單元,用于將連續(xù)確定的實(shí)際字間距與所述平均字間距之間的差值連續(xù)小于等于預(yù)設(shè)值的字符加入至所述文字內(nèi)容節(jié)點(diǎn),并將所述平均字間距和第一個(gè)加入所述文字內(nèi)容節(jié)點(diǎn)中的字符的坐標(biāo)保存至所述文字內(nèi)容節(jié)點(diǎn); 第二創(chuàng)建子單元,用于將實(shí)際字間距與所述平均字間距之間的差值大于預(yù)設(shè)值的字符加入至新建的且與所述同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的版式文檔內(nèi)容描述優(yōu)化裝置,其特征在于,所述文本屬性包括字體名稱、字符大小和/或字符顏色。
6.一種終端,其特征在于,包括如權(quán)利要求1至5中任一項(xiàng)所述的版式文檔內(nèi)容描述優(yōu)化裝置,還包括: 顯示單元,在顯示經(jīng)過(guò)所述版式文檔內(nèi)容描述優(yōu)化裝置優(yōu)化后的版式文檔內(nèi)容時(shí),基于文字節(jié)點(diǎn)的文本屬性、以及所述文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中包含的行或列的平均字間距和首字符坐標(biāo),確定所述版式文檔內(nèi)容中每一字符的顯示位置和所需顯示的文本屬性。
7.一種版式文檔內(nèi)容描述優(yōu)化方法,其特征在于,包括: 解析原始版式文檔內(nèi)容,得到文本圖元數(shù)據(jù); 識(shí)別出所述文本圖元數(shù)據(jù)中每一字符的文本屬性,并按照所述文本屬性對(duì)所述文本圖元數(shù)據(jù)中的字符進(jìn)行歸類,將具有相同文本屬性的字符與所述相同文本屬性保存至同一個(gè)文字節(jié)點(diǎn); 針對(duì)每一所述文字節(jié)點(diǎn)中保存的字符,將屬于同一行或同一列的字符、所述同一行或所述同一列的起始字符的坐標(biāo)、所述同一行或所述同一列的平均字間距保存至文字內(nèi)容節(jié)點(diǎn),以得到優(yōu)化后的版式文檔內(nèi)容, 其中,所述文字內(nèi)容節(jié)點(diǎn)是位于所述文字節(jié)點(diǎn)下的且與所述同一行或所述同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求7所述的版式文檔內(nèi)容描述優(yōu)化方法,其特征在于,所述字符的歸類方法包括: 針對(duì)所述文本圖元數(shù)據(jù)中每一行或每一列的字符,判斷當(dāng)前字符的文本屬性與相鄰字符的文本屬性是否相同; 在判斷結(jié)果為相同時(shí),將所述當(dāng)前字符保存至與所述相鄰字符相對(duì)應(yīng)的文字節(jié)點(diǎn)中。
9.根據(jù)權(quán)利要求8所述的版式文檔內(nèi)容描述優(yōu)化方法,其特征在于,在所述判斷結(jié)果為不相同時(shí),新建文字節(jié)點(diǎn),將所述當(dāng)前字符保存至新建的文字節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求7所述的版式文檔內(nèi)容描述優(yōu)化方法,其特征在于,所述文字內(nèi)容節(jié)點(diǎn)的生成方法包括: 針對(duì)每一所述文字節(jié)點(diǎn)中的字符,緩存屬于同一行或同一列的字符; 計(jì)算所述同一行或同一列的字符之間的所述平均字間距和實(shí)際字間距; 將連續(xù)確定的實(shí)際字間距與所述平均字間距之間的差值連續(xù)小于等于預(yù)設(shè)值的字符加入至所述文字內(nèi)容節(jié)點(diǎn),并將所述平均字間距和第一個(gè)加入所述文字內(nèi)容節(jié)點(diǎn)中的字符的坐標(biāo)保存至所述文字內(nèi)容節(jié)點(diǎn); 將實(shí)際字間距與所述平均字間距之間的差值大于預(yù)設(shè)值的字符加入至新建的且與所述同一行或同一列對(duì)應(yīng)的文字內(nèi)容節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求7至10中任一項(xiàng)所述的版式文檔內(nèi)容描述優(yōu)化方法,其特征在于,所述文本屬性包括字體名稱、字符大小和/或字符顏色。
12.根據(jù)權(quán)利要求7至10中任一項(xiàng)所述的版式文檔內(nèi)容描述優(yōu)化方法,其特征在于,在顯示進(jìn)行優(yōu)化后的版式文檔內(nèi)容時(shí),基于所述文字節(jié)點(diǎn)的文本屬性、以及所述文字節(jié)點(diǎn)下的文字內(nèi)容節(jié)點(diǎn)中包含的行或列的平均字間距和首字符坐標(biāo),確定所述版式文檔內(nèi)容中每一字符的顯示位置和所需顯示的文本屬性。
【文檔編號(hào)】G06F17/30GK104182396SQ201310190313
【公開(kāi)日】2014年12月3日 申請(qǐng)日期:2013年5月21日 優(yōu)先權(quán)日:2013年5月21日
【發(fā)明者】邢國(guó)峰, 王長(zhǎng)勝 申請(qǐng)人:北大方正集團(tuán)有限公司, 北京方正阿帕比技術(shù)有限公司