本發(fā)明實施例涉及移動通信技術領域,尤其涉及一種頁面排版方法及裝置。
背景技術:
隨著科技的發(fā)展和人們物質生活水平的提高,移動終端尤其是手機的普及率越來越高,在使用移動終端的過程中,由于移動終端本身硬件條件的限制,顯示文字的時候,由于每個文字的寬度不同,導致文字在換行的地方不能對齊,導致每行的長度長短不一,影響美觀,現有技術中有一些方案可以處理這個問題,但處理過程中仍然存在很多其他問題。
在實現本發(fā)明過程中,發(fā)明人發(fā)現現有技術中至少存在如下問題:比如一些方案自己去排版繪制文字,但是由于文字的顯示是一個非常復雜的系統(tǒng),很難完整的去實現其他功能,結果導致復制粘貼等功能無法使用,還有一些使用等寬字體,導致文本不美觀,同時也無法支持中英混排。
技術實現要素:
為了克服現有技術中相關產品的不足,本發(fā)明實施例提出一種頁面排版方法及裝置,解決現有技術中,文字在換行的地方不能對齊或使用等寬字體導致復制粘貼等功能無法使用的缺點。
本發(fā)明實施例解決其技術問題所采用的技術方案是:
本發(fā)明實施例提供了一種頁面排版方法,包括:獲取文本的頁面初始排版信息;根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離;根據計算的結果對每一行的字符分別進行排版。
作為本發(fā)明實施例的進一步改進,若最后一個字符為空格,則所述距離為空格前一個字符到頁面右側的距離。
作為本發(fā)明實施例的進一步改進,所述根據計算的結果對每一行的字符分別進行排版包括:根據計算的結果判斷所述距離是否為零,若不為零則繼續(xù)判斷所述距離是否小于一個中文字符的寬度;根據判斷的結果和排版規(guī)則對每一行的字符分別進行排版。
作為本發(fā)明實施例的進一步改進,所述排版規(guī)則為:若所述距離為零或大于一個中文字符的寬度,則所述距離對應的該行字符保持初始排版;若所述距離小于一個中文字符的寬度,則所述距離對應的該行字符重新排版,使最后一個字符與頁面右側對齊,其中,當最后一個字符為空格時,由空格前一個字符與頁面右側對齊。
作為本發(fā)明實施例的進一步改進,在所述根據計算的結果對每一行的字符分別進行排版之后,所述方法還包括:將重新排版的文本在頁面上進行顯示。
本發(fā)明實施例提供了一種頁面排版裝置,包括:文本識別模塊,用于獲取文本的頁面初始排版信息;距離獲取模塊,用于根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離;排版模塊,用于根據計算的結果對每一行的字符分別進行排版。
作為本發(fā)明實施例的進一步改進,若最后一個字符為空格,則所述距離為空格前一個字符到頁面右側的距離。
作為本發(fā)明實施例的進一步改進,所述排版模塊包括:判斷單元,用于根據計算的結果判斷所述距離是否為零,若不為零則繼續(xù)判斷所述距離是否小于一個中文字符的寬度;執(zhí)行單元,用于根據判斷的結果和排版規(guī)則對每一行的字符分別進行排版。
作為本發(fā)明實施例的進一步改進,所述排版規(guī)則為:若所述距離大于一個中文字符的寬度,則所述距離對應的該行字符保持初始排版;若所述距離小于一個中文字符的寬度,則所述距離對應的該行字符重新排版,使最后一個字符與頁面右側對齊,其中,當最后一個字符為空格時,由空格前一個字符與頁面右側對齊。
作為本發(fā)明實施例的進一步改進,所述裝置還包括:顯示模塊,用于將重新排版的文本在頁面上進行顯示。
與現有技術相比,本發(fā)明有以下優(yōu)點:
對文本的頁面排版格式進行重新排版,使文本中的字符在換行時,該行文字能與頁面右側對齊,由于重新排版時沒有對文本中的字符進行更改,因此不影響對文本中字符的復制粘貼等編輯功能。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明所述頁面排版方法第一實施例的流程示意圖;
圖2為本發(fā)明所述頁面排版方法第二實施例的流程示意圖;
圖3為本發(fā)明所述頁面排版裝置第一實施例的結構示意圖;
圖4為本發(fā)明所述頁面排版裝置第二實施例的結構示意圖。
具體實施方式
為了便于理解本發(fā)明,下面將參照相關附圖對本發(fā)明進行更全面的描述。附圖中給出了本發(fā)明的較佳實施例。但是,本發(fā)明可以以許多不同的形式來實現,并不限于本文所描述的實施例。相反地,提供這些實施例的目的是使對本發(fā)明的公開內容的理解更加透徹全面。
除非另有定義,本文所使用的所有的技術和科學術語與屬于本發(fā)明的技術領域的技術人員通常理解的含義相同。本文中在本發(fā)明的說明書中所使用的術語只是為了描述具體的實施例的目的,不是旨在于限制本發(fā)明。
實施例一
參閱圖1所示,為本發(fā)明所述頁面排版方法第一實施例的流程示意圖,所述頁面排版方法應用于移動終端,所述移動終端包括但不限于手機、平板等;所述頁面排版方法包括以下步驟:
S101:獲取文本的頁面初始排版信息。
所述的頁面初始排版信息包括頁面的寬度以及文本中各個字符的寬度,根據文本編碼的格式不同,各個字符的寬度也不同,例如,在ASCII碼中,一個英文字符(不分大小寫)占一個字節(jié)的寬度,一個中文字符或標點占兩個字節(jié)的寬度,一個空格占一個字節(jié)的寬度,通常來說,在各個文本的編碼格式中,中文字符在文本中是寬度最大的字符。
S102:根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離。
在本發(fā)明實施例中,若最后一個字符為空格,則所述距離為空格前一個字符到頁面右側的距離,若所述最后一個字符與頁面右側對齊,則所述距離為零。
S103:根據計算的結果對每一行的字符分別進行排版。
根據所述計算的結果對所述距離進行判斷,并根據判斷結果對每一行的字符分別進行排版,使文本中的字符在換行時,該行文字能與頁面右側對齊。
在本發(fā)明實施例中,所述頁面排版方法通過獲取文本的頁面初始排版信息,根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離,根據計算的結果對每一行的字符分別進行排版,通過該過程對文本的頁面排版格式進行重新排版,使文本中的字符在換行時,該行文字能與頁面右側對齊,由于重新排版時沒有對文本中的字符進行更改,因此不影響對文本中字符的復制粘貼等編輯功能。
實施例二
在上述實施例的基礎上,參閱圖2所示,為本發(fā)明所述頁面排版方法第二實施例的流程示意圖,所述頁面排版方法應用于移動終端,所述移動終端包括但不限于手機、平板等;所述頁面排版方法包括以下步驟:
S201:獲取文本的頁面初始排版信息。
請參閱上述步驟S101,這里不再贅述。
S202:根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離。
請參閱上述步驟S102,這里不再贅述。
S203:根據計算的結果對每一行的字符分別進行排版。
可選的,本發(fā)明實施例根據計算的結果判斷所述距離是否為零,若不為零則繼續(xù)判斷所述距離是否小于一個中文字符的寬度;當所述最后一個字符與頁面右側對齊,則所述距離為零,由于在各個文本的編碼格式中,中文字符在文本中是寬度最大的字符,可知,通過判斷所述距離是否小于一個中文字符的寬度來確定當前字符是否需要換行。
可選的,本發(fā)明實施例根據判斷的結果和排版規(guī)則對每一行的字符分別進行排版,所述排版規(guī)則具體為:
若所述距離為零或大于一個中文字符的寬度,則所述距離對應的該行字符保持初始排版;
若所述距離小于一個中文字符的寬度,則所述距離對應的該行字符重新排版,使最后一個字符與頁面右側對齊,其中,當最后一個字符為空格時,由空格前一個字符與頁面右側對齊。
所述距離為零以及大于一個中文字符的寬度分別對應于最后一個字符與頁面右側對齊和該行字符不需要換行這兩種情況,當所述距離小于一個中文字符的寬度時,即為字符需要換行的情況。
所述重新排版具體包括:
計算該行所有字符的寬度,令該行所有的X個字符的寬度為M,令頁面的寬度為N,則該行字符與頁面間的總空隙為H,即H=N-M,由于第一個字符與頁面左側對齊,同時使最后一個字符與頁面右側對齊,則將所述總空隙H平均分為X-1個間隔,令所述間隔為L,則L=H/(X-1),將所述X-1個間隔分別插入到該行所有的X個字符中間,使任意相鄰的2個字符中間有1個所述間隔。
若最后一個字符為空格,令空格的寬度為Y,則此時該行字符與頁面間的總空隙H=N-M+Y,所述間隔L=(N-M+Y)/(X-1)。
S204:將重新排版的文本在頁面上進行顯示。
本發(fā)明實施例將初始排版的文本替換為重新排版的文本,并在頁面上進行顯示。
在本發(fā)明實施例中,所述頁面排版方法通過獲取文本的頁面初始排版信息,根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離,根據計算的結果對每一行的字符分別進行排版,將重新排版的文本在頁面上進行顯示,通過該過程對文本的頁面排版格式進行重新排版,使文本中的字符在換行時,該行文字能與頁面右側對齊,由于重新排版時沒有對文本中的字符進行更改,因此不影響對文本中字符的復制粘貼等編輯功能,對于中英文混排也有較佳的顯示效果,均勻的排版使文本看起來更為美觀。
實施例三
參閱圖3所示,為本發(fā)明所述頁面排版裝置第一實施例的結構示意圖,所述頁面排版裝置應用于移動終端,所述移動終端包括但不限于手機、平板等;所述頁面排版裝置包括文本識別模塊1、距離獲取模塊2以及排版模塊3。
所述文本識別模塊1用于獲取文本的頁面初始排版信息,所述的頁面初始排版信息包括頁面的寬度以及文本中各個字符的寬度,根據文本編碼的格式不同,各個字符的寬度也不同,例如,在ASCII碼中,一個英文字符(不分大小寫)占一個字節(jié)的寬度,一個中文字符或標點占兩個字節(jié)的寬度,一個空格占一個字節(jié)的寬度,通常來說,在各個文本的編碼格式中,中文字符在文本中是寬度最大的字符。
所述距離獲取模塊2用于根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離。
在本發(fā)明實施例中,若最后一個字符為空格,則所述距離為空格前一個字符到頁面右側的距離,若所述最后一個字符與頁面右側對齊,則所述距離為零。
所述排版模塊3用于根據計算的結果對每一行的字符分別進行排版,所述排版模塊3根據所述計算的結果對所述距離進行判斷,并根據判斷結果對每一行的字符分別進行排版,使文本中的字符在換行時,該行文字能與頁面右側對齊。
在本發(fā)明實施例中,所述頁面排版裝置通過所述文本識別模塊1獲取文本的頁面初始排版信息,距離獲取模塊2根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離,排版模塊3根據計算的結果對每一行的字符分別進行排版,通過該過程對文本的頁面排版格式進行重新排版,使文本中的字符在換行時,該行文字能與頁面右側對齊,由于重新排版時沒有對文本中的字符進行更改,因此不影響對文本中字符的復制粘貼等編輯功能。
實施例四
在上述實施例的基礎上,參閱圖4所示,為本發(fā)明所述頁面排版裝置第二實施例的結構示意圖,所述頁面排版裝置應用于移動終端,所述移動終端包括但不限于手機、平板等;所述頁面排版裝置包括文本識別模塊1、距離獲取模塊2、排版模塊3排版模塊3以及顯示模塊4。
所述文本識別模塊1用于獲取文本的頁面初始排版信息。
所述距離獲取模塊2用于根據所述頁面初始排版信息,計算所述文本中每一行的最后一個字符到頁面右側的距離。
所述排版模塊3用于根據計算的結果對每一行的字符分別進行排版,所述排版模塊3包括判斷單元31和執(zhí)行單元32。
所述判斷單元31用于根據計算的結果判斷所述距離是否為零,若不為零則繼續(xù)判斷所述距離是否小于一個中文字符的寬度;當所述最后一個字符與頁面右側對齊,則所述距離為零,由于在各個文本的編碼格式中,中文字符在文本中是寬度最大的字符,可知,通過判斷所述距離是否小于一個中文字符的寬度來確定當前字符是否需要換行。
所述執(zhí)行單元32用于根據判斷的結果和排版規(guī)則對每一行的字符分別進行排版,所述排版規(guī)則具體為:
若所述距離為零或大于一個中文字符的寬度,則所述距離對應的該行字符保持初始排版;
若所述距離小于一個中文字符的寬度,則所述距離對應的該行字符重新排版,使最后一個字符與頁面右側對齊,其中,當最后一個字符為空格時,由空格前一個字符與頁面右側對齊。
所述距離為零以及大于一個中文字符的寬度分別對應于最后一個字符與頁面右側對齊和該行字符不需要換行這兩種情況,當所述距離小于一個中文字符的寬度時,即為字符需要換行的情況。
所述重新排版具體包括:
計算該行所有字符的寬度,令該行所有的X個字符的寬度為M,令頁面的寬度為N,則該行字符與頁面間的總空隙為H,即H=N-M,由于第一個字符與頁面左側對齊,同時使最后一個字符與頁面右側對齊,則將所述總空隙H平均分為X-1個間隔,令所述間隔為L,則L=H/(X-1),將所述X-1個間隔分別插入到該行所有的X個字符中間,使任意相鄰的2個字符中間有1個所述間隔。
若最后一個字符為空格,令空格的寬度為Y,則此時該行字符與頁面間的總空隙H=N-M+Y,所述間隔L=(N-M+Y)/(X-1)。
所述顯示模塊4用于將重新排版的文本在頁面上進行顯示,將初始排版的文本替換為重新排版的文本,并在頁面上進行顯示。
本領域技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序存儲在一個存儲介質中,包括若干指令用以使得一個設備(可以是單片機,芯片等)或處理器(processor)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內。