发明内容
有鉴于此,本发明实施例提供一种阅读电子文档的方法与装置,以克服现有技术中的上述不足之处。
本发明实施例给出的一种显示电子文档的方法,包括:
当收到打开电子文档的指令后,根据可视区域高度和设置的电子文档页面显示高度将电子文档的页面纵向设置为两个以上阅读区域,其中,每个阅读区域高度不大于可视区域高度,然后显示其中一个阅读区域;
根据收到的操作指令显示电子文档中该操作指令指向的相邻阅读区域;
其中,在所述显示其中一个阅读区域之前进一步包括将电子文档中相邻的页面两两组成扩展页;并且所述显示其中一个阅读区域之后进一步包括:
当收到对当前阅读区域的拖拽操作时,根据该拖拽操作的方向与距离确定位移矢量,在当前阅读区域所在的当前扩展页中沿着所述位移矢量的反方向,按照该位移矢量的长度移动当前显示的区域得到目的区域,显示该扩展页中目的区域内的内容;
所述将电子文档中相邻的页面两两组成扩展页包括:从所述电子文档中设定的页面起将电子文档的页面按自然数连续编号;对于每个奇数号页及其相邻的下一页,将该下一页布置在该奇数页右侧得到扩展页,或,将一页空白页置于所述设定的页面左侧得到扩展页,并且对于从所述设定的页面起的每个偶数号页及其相邻的下一页,将该下一页布置在该偶数页右侧得到一张扩展页。
本发明实施例给出的一种显示电子文档的装置,包括扩展页模块、阅读区域设置模块、拖拽模块和输出模块,其中,
所述扩展页模块,用于将电子文档中的页面两两组成扩展页;所述扩展页模块包括编号单元和第一布置单元,其中,所述编号单元,用于从所述电子文档中设定的页面起将电子文档的页面按自然数连续编号;所述第一布置单元,用于对于每个奇数号页及其相邻的下一页,将该下一页布置在该奇数页右侧得到扩展页,或,将一页空白页置于编号为1的页面左侧得到扩展页,并且对于从编号为2的页面起的每个偶数号页及其相邻的下一页,将该下一页布置在该偶数页右侧得到一张扩展页;
所述阅读区域设置模块,用于当收到打开电子文档的指令后,根据设置的电子文档页面的显示高度和可视区域高度将电子文档的页面纵向设置为两个以上阅读区域;
所述拖拽模块,用于当收到对当前阅读区域的拖拽操作时,根据该拖拽操作的方向与距离确定位移矢量,在当前阅读区域所在的扩展页中沿着所述位移矢量的反方向,按照该位移矢量的长度移动当前显示的区域,得到目的区域;
所述输出模块,用于根据收到的操作指令显示电子文档中该操作指令指向的相邻阅读区域,还用于输出拖拽模块在移动当前显示的区域后得到的目的区域内的页面内容。
根据本发明实施例的技术方案,根据本发明实施例的技术方案,能够在更新文档显示内容时,操作简便并且不会出现跨行显示以及遮蔽部分字块的问题,有着良好的用户体验。
具体实施方式
在本发明实施例中,对电子文档的页面进行预分割,然后根据翻页指令显示相应页面内容。下面以配有鼠标、键盘和显示器的计算机为例说明显示电子文档的方法,具体步骤如图4A所示。
步骤A41:接收打开指令,该打开指令是读者通过操作鼠标或键盘发出的打开选定的电子文档的指令。
步骤A42:将电子文档的页面设置为两个以上阅读区域。
本步骤中,可以如图5A所示将电子文档的页面501纵向设置为两个以上区域,例如图中的区域502和区域503,也可以如图5B所示将电子文档页面511设置为各个方向的两个以上区域,例如图中的区域512-区域516。
步骤A43:显示步骤A42中设置的阅读区域中的一个阅读区域。
本步骤中显示的阅读区域可以是随机的阅读区域。也可以是显示电子文档最后一次被关闭时显示的阅读区域,这样读者就能够方便地直接继续阅读。
步骤A44:根据收到的操作指令显示电子文档中该操作指令指向的相邻阅读区域。
本步骤中的操作指令为用户通过操作鼠标或键盘发出的指令,用于继续阅读文档。用户可以设置用于阅读当前显示区域的上、下、左或右方阅读区域的指令,根据需要阅读的内容发出指向该内容方向的指令。一般来说用户是连续阅读文档,所以本步骤中显示当前显示区域的相邻阅读区域,用户可根据需要继续发出指令。
对于如图1A所示的每页包含单个版面、字体横向且文档内容纵向布置的电子文档页面,如图4B所示的步骤进行显示和响应操作:
步骤B41:接收打开指令,该打开指令是读者通过操作鼠标或键盘发出的打开选定的电子文档的指令。
步骤B42:设置电子文档页面的显示高度。该高度根据显示器显示电子文档时的可视区域高度进行设置。
如图5C所示,在一个窗体51(如图中粗线条的外框所示)中显示电子文档,窗体包括操作界面52(其中包括菜单行和/或操作按钮)以及窗口53,电子文档页面内容在窗口53中显示,窗口53即为显示器显示电子文档时的可视区域。
设置显示高度有多种方法。一种是在收到打开电子文档的指令之前预先设定,另一种方法是根据接收的高度设置指令设置的电子文档页面显示高度,该指令可以由用户发出。第三种方法是,为了使电子文档字体尽可能地大并且显 示宽度不超出可视区域,可以将电子文档的页面宽度调整为所述可视区域的宽度,或者将电子文档的版心宽度调整为所述可视区域的宽度,将根据该宽度和电子文档的宽高比计算得到电子文档页面的显示高度。版心是指页面除去四周页边之后的内容。
步骤B43:对电子文档页面进行预分割。在本发明实施例中,是将电子文档页面纵向进行预分割,即分割为1列N行阅读区域,根据读者的翻页指令每次显示一个阅读区域。所以为了使读者完整阅读电子文档的内容,每个阅读区域的高度不能大于可视区域的高度。根据这个条件,估算并经过几次试验就能够得出自然数N。为了使读者的翻页次数尽可能地少,本发明实施例中给出计算N的最小值的公式:N=(H1/H0)+1。该式中H1表示电子文档页面的显示高度,H0表示可视区域的高度,H1/H0表示大于H1÷H0的最小自然数。
从N=(H1/H0)+1可以看出,如果将每个阅读区域的高度设置为H0并且将电子文档的每个页面平均分为N行,则阅读区域之间必然有重叠的部分。可以使各个重叠的部分所占区域高度相同,则该高度H2可以根据下式计算:H2=(N×H0-H1)/(N-1)。
根据H2,可以将电子文档的页面作如下的预分割:
设置每行阅读区域的高度为H0并且左、右边沿分别与所述可视区域的左、右边沿重合,
设置第1行阅读区域的上边沿与电子文档页面的上边沿重合,
设置第m至第N行阅读区域的上边沿置于第m-1行阅读区域的下边沿上方并且与该下边沿的垂直距离为H2,m是从2至N的自然数。
步骤B44:显示步骤B43中得到的阅读区域中的一个阅读区域。这里可以是显示电子文档第一页的第一行阅读区域。也可以是显示电子文档最后一次被关闭时显示的阅读区域,这样读者就能够方便地直接继续阅读。
预分割之后的页面如图6所示。其中区域61(图中矩形AFLG)为电子文档页面范围;区域62(图中矩形ACIG)为一个阅读区域,同样矩形BEKH和 DFLJ也是阅读区域;区域63(图中矩形BCIH)为阅读区域之间的重复的内容,也叫页面提示区域,因为在翻页时读者能够该重复区域来确定该从当前显示的哪一行开始阅读。线段AF的长度为H0,线段AC、BE和DF的长度为H1,线段BC、DE的长度为H2。
根据N=(H1/H0)+1和H2=(N×H0-H1)/(N-1),若H1/H0为整数,则得到最小的N以及最小高度的H2。不难得出H2÷H0=H0÷H1,于是H2÷H1=(H0÷H1)2。所以当N=2时,H2大于电子文档页面高度的四分之一,当N=3时,H2大于电子文档页面高度的九分之一,对于绝大多数宽高比并且字体为正方形的电子文档页面来说这样的H2的高度中至少有2行文字。如果电子文档宽高比较小,N值也继续增大,例如N=4或N更大时,H2大于电子文档页面高度的十六分之一,对于高度是宽度3倍的电子文档页面来说,如果其中字体为正方形,则十六分之一的高度中至少有2行文字。所以页面提示区域中至少有2行文字,使得读者在翻页时能够确定从哪一行开始阅读。这里考虑的是通常宽高比和字形的电子文档页面。
读者可以通过键盘或鼠标发出翻页指令来翻到当前阅读的上一页或下一页。例如按键盘的“上页”或“下页”键,或者方向键,或者其他读者预定义的键,或者按鼠标左键,或者将鼠标的滚轮向上或向下滚动一格。根据翻页指令,页面可以是瞬间刷新的形式更换到下一页或上一页,即,如果收到的操作指令为显示上文指令,则显示电子文档中位于当前显示的阅读区域上方的相邻阅读区域;如果收到的操作指令为显示下文指令,则显示电子文档中位于当前显示的阅读区域下方的相邻阅读区域。上述过程可以采用动画的方式,具体做法是,如果收到显示上文指令,在可视区域中将当前显示的阅读区域的上一行阅读区域按设定速率向下平移,当该上一行阅读区域的下边沿与可视区域的下边沿重合时停止平移;如果收到显示下文指令,在可视区域中将当前显示的阅读区域的下一行阅读区域按设定速率向上平移,当该下一行阅读区域的上边沿与可视区域的上边沿重合时停止平移。如果当前显示的区域是最下面一行区 域,如图中的区域64(图中矩形DFLJ),则当收到翻至下一页指令时,将下一页面的第一行阅读区域按设定速率向上平移,当该第一行阅读区域的上边沿与可视区域的上边沿重合时停止平移。这种做法比起瞬间刷新的方式,用户在视觉上的感受会更好。
使用上述的预分割的方法,电子文档的页面面积一般要大于显示器屏幕的大小,处于显示区域的内容可见,处于显示区域以外的内容不可见,如图2所示。对于有些从纸件形式的书籍制作得到的电子文档,为了使电子文档看上去更象纸件书籍,本发明实施例中在显示电子文档时,还可以将电子文档的页面作两两配对而组成扩展页。可以从书籍打开封面后的第一页开始配对,也可以将这一页和一个空白页配对,而从下一页开始两两配对,后一种做法更象平时见到的书籍——打开封面,左边为空白页,右边开始书籍的前言或目录等内容。
组成扩展页的具体步骤是,先从电子文档中设定的页面起将电子文档的页面按自然数连续编号,这里设定的页面可以是第一页,也可以是其他页,这样,仅将该其他页及以后的页组成扩展页。然后对于每个奇数号页及其相邻的下一页,将该下一页布置在该奇数页右侧得到一张扩展页,或者将一页空白页置于编号为1的页面左侧得到一张扩展页,以及从编号为2的页面起的每个偶数号页及其相邻的下一页,将该下一页布置在该偶数页右侧得到一张扩展页。在每张扩展页中,右边页面的左边沿的上下端点分别与左边页面的右边沿的上下端点重合。这样得到的扩展页如图7所示,区域71表示扩展页(如图中矩形ABCD),它看上去就象一本翻开的书,区域72(如图中矩形ABFE)和区域73(如图中矩形EFCD)分别表示扩展页中的两个页面,它们仍然进行预分割,在图中作了示意。
在以扩展页的方式阅读电子文档时,如果当前显示内容为一个阅读区域,则翻页方式与前述相同。如果当前显示阅读区域74(如图中矩形AHLE),则向下翻页时以动画方式显示阅读区域75(如图中矩形GIMN)。如果当前显示阅读区域76(如图中矩形JFCK),则向下翻页时以瞬间更新的方式显示下一 个扩展页中位置对应于阅读区域74的阅读区域。
另外,本实施例中的方法支持鼠标对电子文档页面的拖拽操作。当收到对当前阅读区域的拖拽操作时,根据该拖拽操作的方向与距离确定位移矢量。此时鼠标的轨迹即给出了操作的方向与距离,可以方便地确定出从鼠标的初始位置指向当前时刻其所处的位置的矢量。在当前阅读区域所在的当前扩展页中沿着所述位移矢量的反方向,按照该位移矢量的长度移动当前显示的区域得到目的区域,显示该扩展页中目的区域内的内容。例如要看当前显示的内容右边的内容,则将页面向左拖拽,显示的区域应当向右移以显示右边内容。在组成扩展页的情况下,可以通过拖拽的方式阅读与当前页处于同一扩展页的页面内容,以图7中的扩展页为例,如图8所示,如果当前显示的区域为75,则可以通过拖拽的方式显示区域83(如图中矩形OPQR)中的内容。
如果当前显示了区域83中的内容,则当读者翻页时,本发明实施例给出的方法可以使翻页之后当前正好显示一个完整的阅读区域。该方法是当收到翻至上一页指令时,将当前扩展页中位于当前显示区域上方并且与当前显示的区域距离最近的阅读区域作为目标区域并显示,当收到翻至下一页指令时,将当前扩展页中位于当前显示区域下方并且与当前显示的区域距离最近的阅读区域作为目标区域并显示。确定目标区域可以根据图8中所示的线段OA、OE、OG、ON、OS和OJ的长度来确定。也就是说,当收到翻至上一页指令时,目标区域是当前显示区域的左上端点与当前扩展页中位于当前显示区域上方的各个阅读区域的左上端点的距离中最小距离对应的阅读区域(如图中选取了线段OA、OE中的长度最短者,即线段OA,OA对应区域74);当收到翻至下一页指令时,所述目标区域是当前显示区域的左上端点与当前扩展页中位于当前显示区域下方的各个阅读区域的左上端点的距离中最小距离对应的阅读区域。这里选择各区域左上端点来度量距离,也可以选择其他端点。另外确定各区域的相对位置(例如某区域在另一区域上方)时,可以建立一个简单的坐标系,例如以B点为原点,有向线段BA和有向线段BC所在射线分别为Y轴和 X轴,即可方便地确定图中各点的相对位置,从而确定各区域的相对位置。根据图中示意的长度,在收到翻至上一页指令时,显示的是阅读区域74,在收到翻至下一页指令时,显示的是阅读区域75。
上述的功能可以由用户选择是否使用。如不使用,则在用户发出翻页指令时显示与当前显示区域相邻的等面积区域,例如当前显示区域为矩形OPQR,收到翻下一页指令时显示区域为矩形PSTQ。
这里显示阅读区域74、75时,也可以通过动画的形式来进行。首先确定位移矢量,将从当前显示区域中心指向目标区域中心的矢量作为位移矢量。以显示阅读区域75为例,将区域83的中心指向阅读区域75的中心的矢量作为位移矢量,如图中箭头84所示,箭头84起点为区域83的中心,终点为区域75的中心。然后按设定的速率,根据位移矢量的方向与长度在当前扩展页中平移区域83,在平移当前显示的区域时,显示当前扩展页中位于当前显示的区域中的页面内容。这里可以形象地理解为区域83是被“照亮”的区域,光源随着位移矢量移动,“照亮”的区域也随着变化。若当前显示区域为区域76,则当收到翻至下一页指令时,以瞬间更新的方式显示下一个扩展页中位置对应于阅读区域74的阅读区域。
以上说明了本发明实施例中显示电子文档页面以及响应读者的翻页或拖拽操作的方法,下面对相应的装置进行说明。
图9所示的电子文档阅读装置90中包括了阅读区域设置模块91和输出模块92。阅读区域设置模块91用于当收到打开电子文档的指令后,将电子文档的页面设置为两个以上阅读区域。输出模块92用于根据收到的操作指令显示电子文档中该操作指令指向的相邻阅读区域。
阅读区域设置模块的一种结构是包括高度设置模块和分割模块。高度设置模块用于当收到打开电子文档的指令后,设置电子文档页面的显示高度。分割模块用于根据显示高度和可视区域高度将电子文档的页面纵向设置为两个以上阅读区域,其中,每个阅读区域高度不大于可视区域高度。
根据电子文档页面的显示高度的不同设置方式,高度设置模块也有几种不同的结构,其中一种是包括接收单元和设定单元,其中接收单元用于接收预设的高度值,设定单元用于收到打开电子文档的指令后将预设的高度值设定为电子文档页面的显示高度。高度设置模块的另一种结构是包括接收单元和设定单元,其中接收单元用于在收到打开电子文档的指令后,接收设置的高度值,设定单元用于将设置的高度值设置为电子文档页面显示高度。高度设置模块的第三种结构是包括调整单元和计算单元,其中调整单元用于将电子文档的页面宽度调整为可视区域的宽度,计算单元用于根据调整单元得到的宽度和电子文档的宽高比得到电子文档页面的显示高度。
对于分割模块,它的结构可以是包括计算单元和布置单元。计算单元用于根据N=(H1/H0)+1计算N,其中,N表示阅读区域的数目,H1表示电子文档页面的显示高度,H0表示可视区域的高度。布置单元用于设置每个阅读区域的高度为H0,每个阅读区域与相邻阅读区域重叠部分的高度为(N×H0-H1)÷(N-1)。
输出模块的一种结构是包括判断单元和第一输出单元。判断单元用于判断收到的操作指令类型。第一输出单元用于如果收到的操作指令为显示上文指令,则显示电子文档中位于当前显示的阅读区域上方的相邻阅读区域,以及如果收到的操作指令为显示下文指令,则显示电子文档中位于当前显示的阅读区域下方的相邻阅读区域。
图10所示的电子文档阅读装置100能够基于扩展页的方式来显示页面,它包含了图9中的阅读区域设置模块91和输出模块92的已有部分,并在输出模块92中添加模块,得到图中输出模块101,如图中所示,下面进行具体说明。
电子文档阅读装置100进一步包括了扩展页模块102和拖拽模块103,扩展页模块102用于将电子文档中的页面两两组成扩展页。拖拽模块103用于当收到对当前阅读区域的拖拽操作时,根据该拖拽操作的方向与距离确定位移矢量,在当前阅读区域所在的扩展页中沿着该位移矢量的反方向平移当前显示的 区域,当平移距离等于该位移矢量长度时停止。输出模块101进一步包括第二输出单元,用于输出拖拽模块在平移当前显示的区域时当前扩展页中位于所述可视区域内的页面内容。
扩展页模块102的一种结构是包括编号单元和布置单元。编号单元用于从电子文档中设定的页面起将电子文档的页面按自然数连续编号。布置单元用于对于每个奇数号页及其相邻的下一页,将该下一页布置在该奇数页右侧得到扩展页,或将一页空白页置于编号为1的页面左侧得到扩展页,并且对于从编号为2的页面起的每个偶数号页及其相邻的下一页,将该下一页布置在该偶数页右侧得到一张扩展页。
输出模块101进一步包括定位单元和第三输出单元。定位单元用于若收到显示上文指令,将当前扩展页中位于当前显示区域上方并且与当前显示的区域距离最近的阅读区域确定为目标区域,以及若收到显示下文指令,将当前扩展页中位于当前显示区域下方并且与当前显示的区域距离最近的阅读区域确定为目标区域。第三输出单元用于输出定位单元确定的目标区域。
在本发明实施例中,对电子文档的页面作了预分割,得到多个阅读区域,在读者每次翻页时显示一个阅读区域,从而在显示屏幕中不会出现上下两个页面之间的区域,也不会出现最下一行只显示半行字的情况。并且每个阅读提示区域使读者能够在翻页之后看到翻页之前阅读过的行,从而确定该从哪一行开始继续阅读。预分割时先将页面匹配显示屏幕宽度,这样使得文档字体尽可能地大。在翻页时使用速率可设定的动画方式;在使用扩展页的显示方式下,当显示屏幕中包含多个阅读区域的部分内容时,若上下翻页,能够智能地显示一个完整的阅读区域,并且支持鼠标拖拽操作。在翻页时使用设定的键或鼠标操作即可完成。所有这些都提高了用户在阅读电子文档时的体验。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。