專利名稱:閱讀多頁面文檔的便攜式電子設(shè)備及其渲染方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在便攜式電子設(shè)備上面閱讀多頁面文檔的渲染方法,以及采用這種方法可以快速流暢地閱讀多頁面文檔的便攜式電子設(shè)備。
背景技術(shù):
現(xiàn)實生活中,隨著移動設(shè)備(即便攜式電子設(shè)備,比如PDA、智能手機或平板電腦等)的大量普及,在移動設(shè)備上閱讀PDF之類的多頁面文檔的需求越來越多。由于PDF之類的多頁面文檔的頁面結(jié)構(gòu)比較復(fù)雜、元素種類繁多,而移動設(shè)備資源有限,造成在移動設(shè)備上顯示一個PDF頁面需要較長的時間,從而降低了用戶的體驗效果,因此如何盡可能的加快閱讀器的顯示速度成為一個需要研究的課題。例如,現(xiàn)有技術(shù)中的HF文檔在移動設(shè)備中的閱讀,其中的渲染方式有以下幾種(I)在即將顯示一個頁面的時候再進行頁面載入,在主線程中進行頁面渲染。缺點是由于缺乏緩沖機制,在每個頁面需要顯示的時候再進行頁面載入,這就造成了頁面顯示效率低下,用戶明顯感覺到了頁面的載入過程。(2)在顯示一個文檔的時候?qū)⑺许撁娣诺胶笈_渲染線程中進行渲染。缺點是沒有一個頁面調(diào)度機制,造成了用戶退出一個文檔閱讀進入另外的文檔閱讀的時候后臺線程還在渲染上一個文檔的頁面;如果顯示界面調(diào)入縮略圖窗體的時候,后臺還在渲染主顯示窗體的頁面,那么會造成縮略圖加載速度變慢。其中的閱讀緩沖方式有以下幾種(I) 一次將文檔中的所有頁面進行讀取顯示。缺點是由于一次行的將所有頁面載入,所以當(dāng)PDF文檔頁數(shù)較多的時候,會造成加載時間較長;由于在內(nèi)存中載入大量頁面,會造成資源占有量大,程序不穩(wěn)定。(2)在即將顯示頁面的時候在讀取顯示所要顯示的頁面。缺點是雖然克服了方案一的資源占有量大,程序不穩(wěn)定的缺點,但是由于在顯示一頁前才將頁面載入,會造成翻頁閃爍,用戶體驗不好。(3)建立一個緩沖隊列,將顯示過的文檔放入隊列,這樣如果用戶要查看已經(jīng)看過的頁面時,可以快速顯示。缺點是在緩存頁面的時候,沒有考慮到用戶使用的習(xí)慣,僅僅根據(jù)查看時間的先后進行頁面緩存,頁面命中率不高?;谏鲜霈F(xiàn)有技術(shù)中的缺陷,本發(fā)明人創(chuàng)新性地發(fā)明了一種可以快速流暢地閱讀PDF之類多頁面文檔的便攜式電子設(shè)備及其渲染方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于為克服現(xiàn)有技術(shù)的缺陷,而提供一種可以快速流暢地閱讀TOF之類多頁面文檔的便攜式電子設(shè)備及其渲染方法。為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案
一種閱讀多頁面文檔的便攜式電子設(shè)備,包括處理單元,及與處理單元聯(lián)接的存儲器和顯示屏,所述的處理單元包括用于顯示多頁面文檔的Π主線程模塊和在后臺對所顯示頁面的前后若干個頁面進行渲染的的渲染池模塊。其進一步技術(shù)方案為所述的Π主線程模塊顯示至少包括前后各一個頁面(也包括當(dāng)前頁面本身)。其進一步技術(shù)方案為所述的UI主線程模塊還包括用于維護4 12個窗體的閱讀緩沖池模塊,所述的每個窗體顯示一個頁 面。其進一步技術(shù)方案為所述的每個頁面包含時間屬性模塊,所述的時間屬性模塊包括用于記錄該頁面被載入窗體的時間點信息。其進一步技術(shù)方案為所述的每個頁面還包括空間屬性模塊,所述的空間屬性模塊包括用于記錄該頁面的上下或左右位置的頁碼信息。其進一步技術(shù)方案為所述的多頁面文檔為PDF文檔或TIFF文檔。一種閱讀多頁面文檔的渲染方法,該方法是在電子設(shè)備的運行后臺設(shè)有一個渲染池線程,該渲染池線程通過一個任務(wù)隊列和主Π線程進行交互同步1)渲染線程對當(dāng)前閱讀頁面前后各I 9個頁面進行渲染;2)渲染線程執(zhí)行完一個頁面的渲染操作后,通知UI主線程重新繪制顯示窗體;3)UI主線程繪制顯示窗體。其進一步技術(shù)方案為設(shè)置任務(wù)隊列,根據(jù)用戶的閱讀需求將渲染任務(wù)不斷推入到任務(wù)隊列中,渲染線程不斷從任務(wù)隊列中取任務(wù),執(zhí)行渲染操作,無任務(wù)時,渲染線程處于睡眠狀態(tài);切換不同的多頁面文檔時,將原有的多頁面文檔的渲染操作從任務(wù)隊列中全部清除;在所述的頁面中設(shè)置有時間屬性,記錄該頁面被載入窗體的時間,并在用戶進入新頁面時候把時間屬性最大的頁面換出;在所述的頁面設(shè)置有空間屬性,并在用戶進入新頁面時候把其上下頁面或左右頁面載入。其進一步技術(shù)方案為所述的多頁面文檔為PDF文檔或TIFF文檔,渲染線程是將PDF文檔、TIFF文檔渲染為JPEG或者BMP格式的圖片;在首次進行多頁面文檔閱讀時,UI主線程同步預(yù)讀取需要顯示的頁面和與其連接的頁面。其進一步技術(shù)方案為:UI主線程包括一個具有4 12個窗體的閱讀緩沖進程,每個窗體顯不一個頁面。其進一步技術(shù)方案為:UI主線程顯示新頁面時,在閱讀緩沖池中查找該頁面是否已經(jīng)存在,已存在時就將該窗體直接移動到顯示區(qū)域,不存在時則在閱讀緩沖池中刪除一個頁面之后,將新頁面顯示并加入閱讀緩沖池。本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是能提高多頁面文檔閱讀的效率,載入頁面加快;提高了縮略圖和文檔的切換效率,可以快速切換縮略圖;對多頁面文檔的渲染操作移到后臺執(zhí)行,界面操作流暢;維護了緩沖隊列,頁面在小范圍內(nèi)頻繁的換入換出時效率較高;不需要將全部頁面載入內(nèi)存,提高了閱讀的效率和程序的穩(wěn)定性。經(jīng)測試,此種方法可以加大將要換入頁面的命中概率,使得閱讀流暢、程序穩(wěn)定。下面結(jié)合附圖和具體實施例對本發(fā)明作進一步描述。
圖I為本發(fā)明閱讀多頁面文檔的便攜式電子設(shè)備具體實施例的示意圖2為本發(fā)明閱讀多頁面文檔(PDF文檔)的渲染方法具體實施例的渲染流程圖;圖3為本發(fā)明閱讀多頁面文檔(PDF文檔)的渲染方法具體實施例的閱讀緩沖圖。附圖標(biāo)記說明I處理單元IlUI主線程模塊12渲染池模塊 13閱讀緩沖池模塊10 后臺2存儲器 3顯示屏具體實施方式
為了更充分理解本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例對本發(fā)明的技術(shù)方案進一步介紹和說明,但不局限于此。如圖I所示,本發(fā)明一種閱讀多頁面文檔的便攜式電子設(shè)備,包括處理單元1,及與處理單元I聯(lián)接的存儲器2和顯示屏3,處理單元I包括用于顯示多頁面文檔的UI主線程模塊11和在后臺10對所顯示頁面的前后若干個頁面進行渲染的的渲染池模塊12。UI主線程模塊11顯示至少包括前后各一個頁面(也包括當(dāng)前頁面本身)。另外,Π主線程模塊還包括一個閱讀緩沖池模塊13,該閱讀緩沖池模塊13維護4 12個窗體,每個窗體顯示一個頁面。這些窗體可以縮略圖的形式顯示,以提供用戶隨時調(diào)取當(dāng)前頁面的前后相鄰頁面。其中,多頁面文檔中的每個頁面包含時間屬性模塊,時間屬性模塊包括用于記錄該頁面被載入窗體的時間點信息。每個頁面還包括空間屬性模塊,所述的空間屬性模塊包括用于記錄該頁面的上下或左右位置的頁碼信息。多頁面文檔主要是指PDF文檔或TIFF文檔。如圖2所示,本發(fā)明一種閱讀多頁面文檔(本例中為PDF文檔)的渲染方法,該方法是在電子設(shè)備的運行后臺設(shè)有一個渲染池,該渲染池通過一個任務(wù)隊列和主Π線程進行交互同步I)渲染線程在渲染池中對當(dāng)前閱讀頁面前后各5個頁面進行渲染;2)當(dāng)前閱讀頁面的渲染任務(wù)被不斷推入到任務(wù)隊列中,渲染池中的渲染線程不斷從任務(wù)隊列中取任務(wù),執(zhí)行渲染操作,無任務(wù)時,渲染線程處于睡眠狀態(tài),也即當(dāng)前PDF頁面的渲染任務(wù)被不斷推入到任務(wù)隊列中,渲染池中的渲染線程不斷從任務(wù)隊列中取任務(wù),如果有任務(wù)就執(zhí)行渲染操作,如果沒有該線程就睡眠;3)渲染線程執(zhí)行完一個頁面的渲染操作后,通知UI主線程重新繪制顯示窗體;4)切換不同PDF文檔時,原有的PDF文檔的渲染操作從任務(wù)隊列中全部清除。其中的渲染線程從任務(wù)隊列的頭部取任務(wù)進行渲染。如果用戶調(diào)出縮略圖列表,則將該縮略圖中的渲染需求推入到任務(wù)列表頭部,使得其先被執(zhí)行。也即如果用戶切換了文檔,UI主線程馬上將存在于任務(wù)隊列中的任務(wù)清空再退讓當(dāng)前文檔的渲染任務(wù),如果用戶調(diào)出縮略圖列表,則將該縮略圖中的渲染需求推入到任務(wù)列表頭部,使得其先被執(zhí)行。渲染的具體步驟為步驟201 開始閱讀PDF文檔;步驟202 :推入顯示頁面和其上下或左右各五個頁面渲染任務(wù)到任務(wù)隊列中;
步驟203 :渲染頁面;步驟204 :接到渲染成功的消息;步驟205 :重繪顯示界面;步驟206 :判斷是否切換文檔,不切換文檔時,進入步驟208,切換文檔時,進入步驟 207 ;步驟207 :刪除任務(wù)列表中的過期任務(wù);步驟208 :判斷是否結(jié)束閱讀,若不結(jié)束閱讀時,重新進入步驟203,進行頁面的瀉染,若結(jié)束閱讀時,則進入閱讀結(jié)束的步驟209 ;
步驟209:閱讀結(jié)束。如圖3所示,其中的閱讀緩沖流程為在首次進行PDF文檔閱讀時,Π主線程同步預(yù)讀取需要顯示的頁面和其前后(包括上下方向或左右方向的頁面)各一個頁面(這樣做的原因是對第一個頁面進行顯示的時候不會存在閃爍的問題)。也即首次進行文檔查看的時候,同步預(yù)讀取需要顯示的頁面和其左右各一個頁面,這樣做的原因是對第一個頁面進行顯示的時候不會存在閃爍的問題。還包括一個具有4 12個窗體的閱讀緩沖池,每個窗體顯示一個頁面。Π主線程顯示新頁面時,在閱讀緩沖池中查找該頁面是否已經(jīng)存在,已存在時就將該窗體直接移動到顯示區(qū)域,不存在時則在閱讀緩沖池中刪除一個頁面之后,將新頁面顯示并加入閱讀緩沖池。刪除頁面時選擇離當(dāng)前頁面最遠(yuǎn)的頁面(即從空間上選擇)或選擇查看時間最長的頁面(即從時間上選擇)。優(yōu)先選擇刪除離當(dāng)前頁面最遠(yuǎn)的頁面。閱讀緩沖的具體步驟為步驟301 開始閱讀PDF文檔;步驟302 :預(yù)先讀取3個頁面,包括當(dāng)前頁面,以及當(dāng)前頁面的前一頁和后一頁;步驟303 :判斷是否要換頁,如果不換頁,則進入步驟306閱讀結(jié)束;如何換頁的話,則將新窗口加入閱讀緩沖池(即步驟304);步驟304 :將新窗口加入閱讀緩沖池;步驟305 :在渲染池中將前后各5個頁面渲染為圖片;步驟306:閱讀結(jié)束。綜上所述,能提高多頁面文檔閱讀的效率,載入頁面加快;提高了縮略圖和文檔的切換效率,可以快速切換縮略圖;對多頁面文檔的渲染操作移到后臺執(zhí)行,界面操作流暢;維護了緩沖隊列,頁面在小范圍內(nèi)頻繁的換入換出時效率較高;不需要將全部頁面載入內(nèi)存,提高了閱讀的效率和程序的穩(wěn)定性。以上所述僅以實施例來進一步說明本發(fā)明的技術(shù)內(nèi)容,以便于讀者更容易理解,但不代表本發(fā)明的實施方式僅限于此,任何依本發(fā)明所做的技術(shù)延伸或再創(chuàng)造,均受本發(fā)明的保護。本發(fā)明的保護范圍以權(quán)利要求書為準(zhǔn)。
權(quán)利要求
1.一種閱讀多頁面文檔的便攜式電子設(shè)備,包括處理單元,及與處理單元聯(lián)接的存儲器和顯示屏,其特征在于所述的處理單元包括用于顯示多頁面文檔的Π主線程模塊和在后臺對所顯示頁面的前后若干個頁面進行渲染的的渲染池模塊。
2.根據(jù)權(quán)利要求I所述的閱讀多頁面文檔的便攜式電子設(shè)備,其特征在于所述的Π主線程模塊顯示至少包括前后各一個頁面。
3.根據(jù)權(quán)利要求2所述的閱讀多頁面文檔的便攜式電子設(shè)備,其特征在于所述的UI主線程模塊還包括用于維護4 12個窗體的閱讀緩沖池模塊,所述的每個窗體顯示一個頁面。
4.根據(jù)權(quán)利要求3所述的閱讀多頁面文檔的便攜式電子設(shè)備,其特征在于所述的每個頁面包含時間屬性模塊,所述的時間屬性模塊包括用于記錄該頁面被載入窗體的時間點信息。
5.根據(jù)權(quán)利要求3所述的閱讀多頁面文檔的便攜式電子設(shè)備,其特征在于所述的每個頁面還包括空間屬性模塊,所述的空間屬性模塊包括用于記錄該頁面的上下或左右位置的頁碼息。
6.一種閱讀多頁面文檔的渲染方法,其特征在于該方法是在電子設(shè)備的運行后臺設(shè)有一個渲染池線程,該渲染池線程通過一個任務(wù)隊列和主Π線程進行交互同步 1)渲染線程對當(dāng)前閱讀頁面前后各I 9個頁面進行渲染; 2)渲染線程執(zhí)行完一個頁面的渲染操作后,通知Π主線程重新繪制顯示窗體; 3)UI主線程繪制顯示窗體。
7.根據(jù)權(quán)利要求6所述的閱讀多頁面文檔的渲染方法,其特征在于 設(shè)置任務(wù)隊列,根據(jù)用戶的閱讀需求將渲染任務(wù)不斷推入到任務(wù)隊列中,渲染線程不斷從任務(wù)隊列中取任務(wù),執(zhí)行渲染操作,無任務(wù)時,渲染線程處于睡眠狀態(tài); 切換不同的多頁面文檔時,將原有的多頁面文檔的渲染操作從任務(wù)隊列中全部清除;在所述的頁面中設(shè)置有時間屬性,記錄該頁面被載入窗體的時間,并在用戶進入新頁面時候把時間屬性最大的頁面換出; 在所述的頁面設(shè)置有空間屬性,并在用戶進入新頁面時候把其上下頁面或左右頁面載入。
8.根據(jù)權(quán)利要求7所述的一種閱讀多頁面文檔的渲染方法,其特征在于所述的多頁面文檔為PDF文檔或TIFF文檔,渲染線程是將PDF文檔、TIFF文檔渲染為JPEG或者BMP格式的圖片;在首次進行多頁面文檔閱讀時,UI主線程同步預(yù)讀取需要顯示的頁面和與其連接的頁面。
9.根據(jù)權(quán)利要求6所述的一種閱讀多頁面文檔的渲染方法,其特征在于Π主線程包括一個具有4 12個窗體的閱讀緩沖進程,每個窗體顯示一個頁面。
10.根據(jù)權(quán)利要求9所述的一種閱讀多頁面文檔的渲染方法,其特征在于UI主線程顯示新頁面時,在閱讀緩沖池中查找該頁面是否已經(jīng)存在,已存在時就將該窗體直接移動到顯示區(qū)域,不存在時則在閱讀緩沖池中刪除一個頁面之后,將新頁面顯示并加入閱讀緩沖池。
全文摘要
本發(fā)明公開了一種閱讀多頁面文檔的便攜式電子設(shè)備,包括處理單元,及與處理單元聯(lián)接的存儲器和顯示屏,所述的處理單元包括用于顯示多頁面文檔的UI主線程模塊和在后臺對所顯示頁面的前后若干個頁面進行渲染的的渲染池模塊。本發(fā)明能提高多頁面文檔閱讀的效率,載入頁面加快;提高了縮略圖和文檔的切換效率,可以快速切換縮略圖;對多頁面文檔的渲染操作移到后臺執(zhí)行,界面操作流暢;維護了緩沖隊列,頁面在小范圍內(nèi)頻繁的換入換出時效率較高;不需要將全部頁面載入內(nèi)存,提高了閱讀的效率和程序的穩(wěn)定性。經(jīng)測試,此種方法可以加大將要換入頁面的命中概率,使得閱讀流暢、程序穩(wěn)定。多頁面文檔為PDF或TIFF文檔。
文檔編號G06F9/46GK102819521SQ20111015257
公開日2012年12月12日 申請日期2011年6月8日 優(yōu)先權(quán)日2011年6月8日
發(fā)明者解光軍 申請人:深圳市萬興軟件有限公司