电子阅读器的快速逼近排版方法和装置的制作方法

文档序号:6337090阅读:121来源:国知局
专利名称:电子阅读器的快速逼近排版方法和装置的制作方法
技术领域
本发明属于排版显示领域,更具体地,涉及到一种电子阅读器的快速逼近排版方法。
背景技术
随着电子阅读器的不断推广及普及,人们对于电子阅读器的排版速度,稳定性表现越来越挑剔,而很多使用者自行生成的极为庞大的txt格式文件,对于电子阅读器排版则提出了更高的挑战。电子阅读器缓慢的排版速度,极大地影响了使用者的体验,影响了阅读时的畅快感。因此,更快地完成对文件的排版,迅速地响应使用者的跳页、旋屏需要,成为发展电子阅读器所面临的迫切任务。当然,提高硬件配置可以解决这个问题,但是这种实现方法的代价相对于计算方法的改进,显得成本过于高昂。现有技术的排版方法,需要根据一行的长度和每个字符的像素宽度进行逐行计算的精确排版。这样的排版效果最好,但是所需要的排版时间也随着文件长度的增加而同步增加,即文件越大,排版要求的限制条件越多,排版的速度越慢。因此,如何针对排版动作进行精简以提高运行速度,成为此技术领域极重要的研究课题。

发明内容
本发明所要解决的技术问题是提供了一种电子阅读器的快速逼近排版方法和装置。本发明通过精确排版不断提升概略排版的精准度,由概略排版来减少精确排版的时间, 快速地对一个文件进行排版后显示。本发明公开了一种电子阅读器的快速逼近排版方法,实现步骤如下
(1)根据设定的排版参数进行分页,得到所述文档中初始窗口长度与总页码,以初始窗口长度计算得到各页的页起始点;
(2)根据指定页码的页起始点获得所述文档的指示位置,从文档的指示位置开始对所述文档重新进行分页,逐行对指定页码所在页面和指定页码后预设页数的各页面进行精确排版,根据精确排版的结果修正初始窗口长度;
(3)根据修正后的页起始点在电子阅读器上进行显示。本发明还公开了一种电子阅读器的快速逼近排版装置,包括如下模块
分页模块根据设定的排版参数进行分页,得到所述文档中初始窗口长度与总页码,以初始窗口长度计算得到各页的页起始点;
修正模块根据指定页码的页起始点获得所述文档的指示位置,从文档的指示位置开始对所述文档重新进行分页,逐行对指定页码所在页面和指定页码后预设页数的各页面进行精确排版,根据精确排版的结果修正初始窗口长度;
显示模块根据修正后的页起始点在电子阅读器上进行显示。本发明电子阅读器的快速逼近排版方法和装置,从所述文件中逐行地进行精确排版,并以预设的精确排版次数进行多次排版,计算页平均数据长度,藉此修正页起始点数据,实现了快速逼近的排版,提高了运行速度,且排版没有限制条件,排版时间不随着文件长度而增加。


读者在参照附图阅读本发明的具体实施方式
以后,将会更清楚地了解本发明的各个方面。其中
图IA是本发明所提出的电子阅读器的快速逼近排版方法的实现流程图。图IB是本发明所提出的概略排版所生成的页起始点示意图。图2A是本发明所提出的概略排版所生成的行起始点示意图。图2B是本发明所提出的精确排版与概略排版所生成的页结束点差异的示意图。图2C是本发明所提出的精确排版时每一行的行起始点示意图。图3A是本发明利用精确排版的统计数据,修正每页的页起始点的示意图。图;3B是本发明所提出快速逼近排版的最后显示效果。
具体实施例方式下面结合附图对本发明作进一步的详细描述。由于本发明公开了一种电子阅读器的快速逼近排版方法和装置,其中所使用的电子阅读器相关技术与构造已为本领域普通技术人员所能明了,故以下文中的说明,不再作完整描述。同时,以下文中所对照的附图,意在表达与本发明特征有关结构的含义,并未亦不需要依据实际尺寸完整绘制,在先声明。第一实施例电子阅读器的快速逼近排版方法
技术领域
本发明提出第一实施例,为一种电子阅读器的快速逼近排版方法,请参考图1A,包含下列步骤
步骤1 根据设定的排版参数进行分页,得到所述文档中初始窗口长度与总页码,以初始窗口长度计算得到各页的页起始点。电子阅读器的滑动窗口长度并不是固定不变的,主要由几个排版参数决定,当排版参数改变的时候,显示文档的窗口就会改变。排版参数主要包括字体尺寸、页面尺寸、文件编码(File Encode)与文件尺寸(File Size)。其中,字体尺寸包含字体宽度与字体高度,表示了每个字符在排版时所占用的像素宽度和像素高度。页面尺寸包含页面宽度与页面高度,页面宽度决定了排版时所有字符排列的最大宽度。页面高度决定了排版时在一页之内的最大行数。编码长度决定了每个字符所占用的实际字节数,当编码种类不同,则这个字符在文件中相对于起始点的偏移量也不一样。比如UTF8编码,一个中文字符的编码长度大部分是3字节。另外,文件尺寸决定了文件的总页数。
首先,由页面宽度除以字体宽度,得到每行字符数 每行字符数=页面宽度/字体宽度
然后,由每行字符数乘以当前编码的编码长度,得到每行的行数据长度(Data Length Per Line)0每行的行数据长度=每行字符数X编码长度然后,由页面高度除以字体高度,得到每页行数
每页行数=页面高度/字体高度
本实施例中,将行间距作为一个排版参数加入到字体高度中,也可以直接指定每页的行数而不计算,这些都不会影响排版的效果。然后,由每页行数乘以每行的行数据长度,得到每页的初始窗口长度,初始窗口长度为各页的平均数据长度。初始窗口长度=每页行数X每行的行数据长度
最后,由初始窗口长度乘以(页码数-ι),就能得到各页的页起始点。每页的页起始点=(页码数-1) X初始窗口长度
各页的页起始点在排版参数改变时运行,然后在电子阅读器中的存储模块中存储各页的页起始点。本实施例中,当前的页面尺寸是600X800,即页面宽度为600像素,页面高度为800像素。字体尺寸是25。即每个字符概略会占用25像素*25像素大小的面积。假设文件编码中每个字符都是等宽的,所以字体宽度为25像素、字体高度亦为25像素。当前文档的文件编码是UTF8。则文档中按照UTF8的编码规则去找到每一个字符。 本实施例中,文档的中文字符编码格式为UTF8,每个字符的编码长度为3个字节,则当前文档的大小为7. 1K(7272字节)。首先计算每行字符数和每页行数。考虑行间距的因素,设置行间距为15。每行字符数=页面宽度/字体宽度=600/25 = 24
每页行数=页面高度/(字体高度+行间距)=800/(25+15) = 20 每行的行数据长度=每行字符数X编码长度=24X3=72 初始窗口长度=每页行数X每行的行数据长度=20X72=1440 初始窗口长度1440即为初始的滑动窗口长度,接下来就可以计算得到总页码(Total Page) 0总页码是文件尺寸除以初始窗口长度的商数再加1,即总页码=(文件尺寸/初始窗口长度)的商数+ 1,因为文件尺寸为7272字节,初始窗口长度为1440,则总页码= 7272/1440 +1=6。这时,总页码以内的各页的页起始点就能够计算出来,亦即,第N页的页起始点= (N-I) X初始窗口长度,计算的各页的页起始点后存储到电子阅读器的存储模块中。如图IB所示,为根据步骤1计算得到的第1页至第6页的页起始点。步骤2 根据指定页码的页起始点获得所述文档的指示位置,从文档的指示位置开始对所述文档重新进行分页,逐行对指定页码所在页面和指定页码后预设页数的各页面进行精确排版,根据精确排版的结果修正初始窗口长度;
所述文档的指示位置为从文档起始处开始计算,指定页码减一之后乘以初始窗口长度所对应的页数据长度。初次运行时,没有任何关于排版的数据记录,只有在步骤1中得到的初始的滑动窗口长度及各页的页起始点。因此,初次从文档的指示位置开始对所述文档重新进行分页的步骤如下步骤Oa)根据用户选择的指定页码,取得指定页码对应的页起始点。步骤Qb)进行精确排版时,自指定页码对应页面的页起始点从文件中读取数据,首先排列一行,记录每行的行起始点与行结束点,当排列的行数等于每页行数时,得到了一页的页结束点,并记录该页的页结束点。从该页的页起始点到页结束点之间的长度即为该页数据长度。步骤Qc)以预设页数M重复前述步骤Oa)与步骤次,即计算M次通过精确排版得到的信息,并记录每页的页数据长度。其中,M为系统默认值,根据实际操作所得的经验,预设页数M以2飞为佳。步骤Qd)对精确排版得到的预设页数M页文档的各页的页数据长度求平均值, 得到页平均数据长度,并将页平均数据长度和各页的页起始点记录到电子阅读器的存储模块中。如果并非是初次运行,亦即第一次以后的运行,则当用户从当前页面跳转至目标页面时,查询页平均数据长度,根据页平均数据长度从当前页面的页结束点开始计算,得到目标页面对应的页起始点。对指定页码后预设页数的各页面的数据长度求平均值,得到页平均数据长度,并将页平均数据长度和各页的页起始点记录到电子阅读器的存储模块中。当用户从当前页面翻页时,显示当前页面的下一页,预设页数M中的最末页的下一页进行精确排版,自该页的页起始点从文件中读取数据,首先排列一行,记录每行的行起始点与行结束点,当排列的行数等于每页行数时,得到了一页的页结束点,并记录该页的页结束点。延续前述步骤1所使用的具体实施例,进一步说明如下
若用户要求显示第2页,设置精确排版的预设页数M为2,初始窗口长度为1440字节。下面是初次运行状况首先计算第2页的页起始点=(2 - 1) X 1440 = 1440,然后排列每一行,如图2A所示,为第2页精确排版后每一行的行起始点。其中,最后一行的行起始点加上该行的行数据长度即为该行的行结束点,而最后一行的行结束点则为精确排版之后的第2页的页结束点。如图2B、2C所示,第2页的页起始点Pl为1440,通过精确排版生成的第2页的页结束点P2为2729,而通过步骤1设定的排版参数进行分页所得到的页结束点P3为观80,逐行精确排版与设定的排版参数进行分页所生成的页结束点是有差异的。逐行精确排版得到第3页的页起始点,即第2页的页结束点为27 ,第2页的精确页数据长度为27^-1440 = 12890由于本实施例中设定的精确排版的运行次数M设置为 2,则需要对第2页的下一页(即第3页)进行上述排列过程,排列结果如图2C所示。逐行精确排版得到第3页的页结束点为3993,第3页的精确页数据长度为3993-2657= 1336 ;则页平均数据长度=(第2页的精确页数据长度+第3页的精确页数据长度)/2 = (1289+ 1336) /2 = 1312。这时,如果用户继续翻至第5页,由于前次计算时已经对初始窗口长度进行了修正,修正初始窗口长度为页平均数据长度,则初始窗口长度已经从1440变更为1312,第5页的页起始点计算成为1312X (5-1)=5对8,使页起始点的计算更为精确。本实施例中,用户显示的当前页面第5页时,预设页数M为2,则第6页已进行精确排版,用户显示的当前页面由第5页翻至第6页时,第7页从页起始点开始进行精确排版,记录第7页的页结束点。在其他实施例中,预设页数M为4,则用户显示的当前页面第5页时,第5页至第8页已进行精确排版,用户显示由第5页翻至第6页时,调用第8页的页结束点从第9页的页起始点开始进行精确排版,记录第9页的页结束点,使第6页至第9页精确排版完毕。根据页平均数据长度记录精确排版后的页面,将进行精确排版后的页面进行统计,修正页平均数据长度为窗口长度。步骤a,记录精确排版后的连续页面。步骤b,如果精确排版后的连续页面对应的页数大于预设页数M,则根据精确排版的结果,对精确排版得到的各页的页数据长度求平均值,修正初始窗口长度为窗口长度。本实施例中,用户显示的当前页面第3页时,预设页数M为2,则第4页已进行精确排版,用户显示的当前页面由第3页翻至第4页时,第5页从页起始点开始进行精确排版, 记录第5页的页结束点,精确排版后的页面对应的页数为3,大于预设页数2。如图3A所示, 根据精确排版的结果用第3、4、5页的页数据长度的平均值(6593-27 ) /3=1288修正页平均数据长度为窗口长度,则窗口长度为1288。由于页平均数据长度修正为窗口长度,则各页的页起始点对应发生变化,如果存储模块中存储有对应页的页起始点,则不进行修正,否则采用窗口长度对各页的页起始点进行存储。用户翻页时,采用窗口长度对文档进行分页,新得到页面所对应的页码在存储模块中进行查询,如果存储模块中有对应的页码的页起始点,则不对该页的页起始点进行修改,否则在存储模块中对采用窗口长度对文档进行分页得到的页起始点进行存储。当用户要求显示其指定的页码时,每次显示的页面必须统一。如第十次打开第2 页与第一次打开第2页所看到的内容必须一样。所以指定页码所对应的页起始点不能根据窗口长度的大小统一进行修正,而必须维持其一致性。在具体实施过程中,因为初次运行时已经得到第2、3页的精确排版数据,为了维持第2页的页起始点不变,所以在图3A中显示的第2页的页起始点保持为1440。因为第3页的实际的结束点比新的滑动窗口更大,所以修正第4页的页起始点为4017。步骤3 根据修正后的页起始点在电子阅读器上进行显示。根据存储模块中存储的窗口长度和页平均数据长度对应的页起始点调用文档,使文档在电子阅读器上进行显示。如果修正后页起始点对应的页面中的行数小于初始窗口长度对应的页面行数,当以修正后页起始点对应的页面中的行数显示初始窗口长度对应的页面时,对初始窗口长度对应的页面在保持页码不变的情况下分屏进行加载。本实施例中,当用户查看第1页时,由于第一页为初始窗口长度对应的页面,对应的页结束点为1440,且修正后页起始点对应的页面只能按窗口长度为1288对文档内容进行加载,则将文档的(Γ1288对应的数据内容在电子阅读器的第一屏进行显示,此时文档对应的页码为1,用户触发翻页命令后,由于按窗口长度为1288对文档内容进行加载,文档对应152 1440的数据被电子阅读器调用在第二屏上继续显示,对应的页码仍为1。使用者要求第2页的通过具体实施后的最终显示效果如图:3B所示。
Il二实施例申,子1 器的快谏逼祈_版装I1本发明进一步提出第二实施例,为一种电子阅读器的快速逼近排版装置,用以实现第一实施例所述的排版方法,主要包括有分页模块、修正模块、显示模块。分页模块根据设定的排版参数进行分页,得到所述文档中初始窗口长度与总页码,以初始窗口长度计算得到各页的页起始点;
修正模块根据指定页码的页起始点获得所述文档的指示位置,从文档的指示位置开始对所述文档重新进行分页,逐行对指定页码所在页面和指定页码后预设页数的各页面进行精确排版,根据精确排版的结果修正初始窗口长度;
显示模块根据修正后的页起始点在电子阅读器上进行显示。本发明所提出一个反复迭代、逐步逼近最快排版速度的排版方法与排版装置。基于概略排版和精确排版的交互运用,通过精确排版,来不断提升概略排版的精准度。并由概略排版的精准度提升,来减少精确排版的时间。藉此,可大幅提升排版效率。以上所述仅为本发明较佳实施例,并非用以限定本发明申请的权利范围;同时以上的描述对于本领域普通技术人员应可明了与实施,因此其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含于权利要求书的范围中。
权利要求
1.一种电子阅读器的快速逼近排版方法,其特征在于,包含下列步骤(1)根据设定的排版参数进行分页,得到所述文档中初始窗口长度与总页码,以初始窗口长度计算得到各页的页起始点;(2)根据指定页码的页起始点获得所述文档的指示位置,从文档的指示位置开始对所述文档重新进行分页,逐行对指定页码所在页面和指定页码后预设页数的各页面进行精确排版,根据精确排版的结果修正初始窗口长度;(3)根据修正后的页起始点在电子阅读器上进行显示。
2.根据权利要求1所述的电子阅读器的快速逼近排版方法,其特征在于所述排版参数包括字体尺寸、页面尺寸、文件编码、文件尺寸与行间距。
3.根据权利要求2所述的电子阅读器的快速逼近排版方法,其特征在于所述字体尺寸包括字体宽度与字体高度,所述页面尺寸包括页面宽度与页面高度,所述文件编码包括编码方法与相应的编码字符所占用的字节数编码长度。
4.根据权利要求1所述的电子阅读器的快速逼近排版方法,其特征在于所述预设页数为2至5。
5.根据权利要求1所述的电子阅读器的快速逼近排版方法,其特征在于所述文档的指示位置为从文档起始处开始计算,指定页码减一之后乘以初始窗口长度所对应的页数据长度。
6.根据权利要求1所述的电子阅读器的快速逼近排版方法,其特征在于对指定页码后预设页数的各页面的数据长度求平均值,得到页平均数据长度,并将页平均数据长度和各页的页起始点记录到电子阅读器的存储模块中。
7.根据权利要求1所述的电子阅读器的快速逼近排版方法,其特征在于所述根据精确排版的结果修正初始窗口长度,包括如下步骤;步骤a,记录精确排版后的连续页面;步骤b,如果精确排版后的连续页面对应的页数大于预设页数,则对精确排版得到的各页的页数据长度求平均值,修正初始窗口长度。
8.根据权利要求7所述的电子阅读器的快速逼近排版方法,其特征在于所述修正初始窗口长度后,如果存储有对应页码的页起始点,则不对该页的页起始点进行修改,否则采用精确排版后得到的页起始点进行存储。
9.根据权利要求1所述的电子阅读器的快速逼近排版方法,其特征在于根据修正后的页起始点在电子阅读器上进行显示时,如果修正后的页起始点对应的页面行数小于初始窗口长度对应的页面行数,以修正后的页起始点对应的页面行数进行显示,在页码保持不变的情况下分屏进行加载。
10.一种电子阅读器的快速逼近排版装置,其特征在于,包含下列模块分页模块根据设定的排版参数进行分页,得到所述文档中初始窗口长度与总页码,以初始窗口长度计算得到各页的页起始点;修正模块根据指定页码的页起始点获得所述文档的指示位置,从文档的指示位置开始对所述文档重新进行分页,逐行对指定页码所在页面和指定页码后预设页数的各页面进行精确排版,根据精确排版的结果修正初始窗口长度;显示模块根据修正后的页起始点在电子阅读器上进行显示。
全文摘要
本发明公开了一种电子阅读器的快速逼近排版方法和装置,属于排版显示领域。该方法包括根据设定的排版参数进行分页,得到所述文档中初始窗口长度与总页码,以初始窗口长度计算得到各页的页起始点;根据指定页码的页起始点获得所述文档的指示位置,从文档的指示位置开始对所述文档重新进行分页,逐行对指定页码所在页面和指定页码后预设页数的各页面进行精确排版,根据精确排版的结果修正初始窗口长度;根据修正后的页起始点在电子阅读器上进行显示。本发明逐行地进行精确排版,并以预设的精确排版次数进行多次排版,藉此修正页起始点数据,实现了快速逼近的排版,提高了运行速度,且排版没有限制条件,排版时间不随着文件长度而增加。
文档编号G06F17/25GK102479176SQ201010565850
公开日2012年5月30日 申请日期2010年11月30日 优先权日2010年11月30日
发明者马锟 申请人:汉王科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1