一种电子文档中的空白区域处理方法和系统
技术领域
本发明涉及一种电数据加工领域,具体地说是一种电子文档中的空白区域处理方法和系统。
背景技术
随着数字信息的发展,电子文档已经成为人们获取信息的途径之一。电子文档可以通过移动设备如手机、计算机、平板电脑、电子书等设备进行阅读。电子文档的形式也是多样的,如PDF文档,EPub文档等。PDF文档是一种常用的电子文档的格式,但是PDF格式的文档无法编辑。EPub文档内部使用了XHTML或DTBook来展现文字、并以zip压缩格式来存储文档内容,ePub作为一种常用的电子图书标准被广泛使用,一个EPUB文档就是一个简单ZIP格式文件,其中包括按照预先定义的方式排列的文件,使得其文字内容可以根据阅读设备的特性,以最适于阅读的方式显示。
在阅读电子文档时,由于文档以及显示设备的原因,电子文档有时会显示出多余的空白位置。例如,在移动终端阅读ePub文档时,可能由于ePub本身的结构问题而显示出一些多余的空白页或者单页内出现大面积的空白区域,这样就需要用于进行一些多余的翻页操作进行阅读,不仅降低了用户的阅读体验,而且对于屏幕有限的移动设备终端来说,显得排版不够紧凑,版面利用率低。
对于EPUB阅读中的白页问题,现有技术中一种方式是对空白页不做任何处理,保留原有的结构,这样会给用户的使用带来不便;另一种方式是将文档中的所有空白区域全部删除,但是,这种做法可能会丢失文档结构中正常的排版间隔信息,不利于文档的正常显示。
如现有技术中公开了一种排版方法和装置,首先将文件分页,当分页后的页面存在空白区域时,确定文件中导致空白区域的可调整元素,调整所述可调整元素与相邻元素在文件中的排版顺序,将空白区域减小时的排版顺序确定为最终的排版顺序。但是,方案中需要人工方式来获取可调元素,如果元素的调整影响表述效果,则无法进行调整。此外,对于由于换行、多余空白行造成的空白区域,该方案只能通过元素调换的方式调整到其他位置,无法减少多余空白行导致的空白区域。
发明内容
为此,本发明所要解决的技术问题在于现有技术中无法在不影响文档内容表达的同时减少多余的空白区域,从而提出一种电子文档中的空白区域处理方法和系统。
为解决上述技术问题,本发明提供一种电子文档中的空白区域处理方法,其特征在于,包括如下过程:
提取文档中的空白行;
根据所述空白行获取空白区域的高度;
根据所述空白区域的高度,确定是否需要处理;
将需要处理的空白区域内的空白行进行合并。
优选地,所述提取文档中的空白行的过程,包括:
获取文档的章节文件和目录文件;
根据目录文件确定所述章节文件的遍历顺序;
依次检测每个章节文件的段落标签,获取空白行的标签。
优选地,所述空白行的标签至少包括段落标签值为空格的标签或段落标签纸为换行的标签。
优选地,根据所述空白行获取空白区域的高度的过程,包括
获取空白行所在段落标签对应的样式属性文件内描述的行高和行间距;
根据所述行高、行间距以及空白行的数量计算空白区域的总高度。
优选地,所述根据所述空白区域的高度,确定是否需要处理的过程,包括
预先设置比例系数;
获取屏幕高度;
当空白区域的高度大于所述屏幕高度与所述比例系数的乘积时,需要进行处理。
优选地,将需要处理的空白区域内的空白行进行合并的过程,包括
将此空白区域内的空白行合并为一个或几个空白行。
优选地,还包括
依次处理每个章节文件中的空白行;
按照所述遍历顺序处理所有章节文件。
本发明还提供一种电子文档中的空白区域处理系统,包括:
空白行提取单元:提取文档中的空白行;
空白区域提取单元:根据所述空白行获取空白区域的高度;
判断单元:根据所述空白区域的高度,确定是否需要处理;
合并单元:将需要处理的空白区域内的空白行合并。
优选地,空白区域提取单元包括
行高和行间距提取子单元:获取空白行所在段落标签对应的样式属性文件内描述的行高和行间距;
总高度计算子单元:根据所述行高、行间距以及空白行的数量计算空白区域的总高度。
优选地,所述判断单元包括
预设子单元:预先设置比例系数;
屏幕高度获取子单元:获取屏幕高度;
判断子单元:当空白区域的高度大于所述屏幕高度与所述比例系数的乘积时,需要进行处理。
本发明的上述技术方案相比现有技术具有以下优点,
1、本实施例中的电子文档中的空白区域处理方法,首先,提取文档中的空白行;然后,根据所述空白行获取空白区域的高度;再根据所述空白区域的高度,确定是否需要处理;最后,将需要处理的空白区域内的空白行进行合并。该方案采用一种特定的白页过滤方法,既减少了用户的多余操作,又在最大程度上保留了文档原有的正常的排版间隔信息,可以有效的减少文档中的空白区域,通过选择合理的条件,将空白区域的范围尽量缩小,保证文档显示时的紧凑型,提高终端设备的屏幕的利用率,降低用户不必要的翻页操作,提高用户体验。
2、本实施例中的电子文档中的空白区域处理方法,先预先设置比例系数,然后获取屏幕高度;当空白区域的高度大于所述屏幕高度与所述比例系数的乘积时,需要进行处理。如果希望尽量保持文档的显示方式,则可以将比例系数选择的大一些。该比例系数的设备也和显示设备有关,如果显示设备的屏幕很大,可以适当的选择的小些,此处比例系数根据需要进行合理选择,灵活性好。
3、本发明还提出一种电子文档中的空白区域处理系统,空白行提取单元、空白区域提取单、判断单元、合并单元。本系统可以智能提升阅读体验,通过特定的白页过滤方法,既减少了用户的多余操作,又在最大程度上保留了文档原有的正常的排版间隔信息。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是本发明实施例1的一种电子文档中的空白区域处理方法的流程图;
图2是本发明实施例2的一种电子文档中的空白区域处理方法的处理过程示意图;
图3是现有技术中的电子文档中的空白区域的效果图;
图4是本发明实施例3中的电子文档中的空白区域处理后的效果图;
图5是本发明实施例4中的电子文档中的空白区域处理系统的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的内容,下面结合附图和实施例对本发明所提供的技术方案作进一步的详细描述。
实施例1:
本实施例中提供一种电子文档中的空白区域处理方法,包括如下过程:
S1:提取文档中的空白行。此处可以通过解析文档信息,提取其文件属性信息即可得到,如文件属性中为正行的空格或回车,都可以认为是空白行。
作为本实施例中一种优化的实施方案,此步骤中可以先获取整个文档的章节信息,再依次获取每个章节文件的空白行信息,具体步骤如下:
S11、获取文档的章节文件和目录文件,通过解析文档的属性信息可以获得。
S12、根据目录文件确定所述章节文件的遍历顺序。
S13、依次检测每个章节文件的段落标签,获取空白行的标签。所述空白行的标签至少包括段落标签值为空格或换行等的标签中的一个或几个。根据空白行的这些标签,就可以得到空白行信息。
S2:根据所述空白行获取空白区域的高度。空白区域的高度与空白行的行高、行间距以及行数有关,具体过程如下:
S21、获取空白行所在段落标签对应的样式属性文件内描述的行高和行间距,行高为H1,行间距为H2;
S22、根据所述行高、行间距以及空白行的数量计算空白区域的总高度。空白行的数量为N,则空白区域总高度H=N*(H1+H2)。如果空白区域内包含多种样式属性的行高和行间距,则需要把该空白区域内的所有空白行所属的行高及行间距信息进行分类计算并叠加,得到该空白区域的总高度。
S3:根据所述空白区域的高度,确定是否需要处理。根据空白区域所占屏幕的多少来确定,具体如下:
S31:预先设置比例系数p,p根据需要来选择,如果希望屏幕内的文档显示的更加紧凑,尽量减少空白区域,可以将p的值选择的小一些,如选择1/8-1/4;如果希望尽量保持文档的显示方式,则可以将P选择的大一些如1/2-1/4。该比例系数的设备也和显示设备有关,如果显示设备的屏幕很大,可以适当的选择的小些,此处p的值根据需要进行合理选择。
S32:获取屏幕高度L。屏幕的高度可以通过读取硬件设备的属性信息获得或者通过用户手动输入获得,或者统计一页内显示的行数,通过行数以及行高、行间距信息的叠加也可以获得屏幕的高度。
S32:当空白区域的高度大于所述屏幕高度与所述比例系数的乘积时,需要进行处理。即空白区域的高度H>L*p时,进行处理。
S4:将需要处理的空白区域内的空白行进行合并,如将此空白区域内的空白行合并为一个空白行,也可以根据需要合并为两行或三行空白行。
采用上述方法依次处理每个章节文件中的空白行,按照所述遍历顺序处理所有章节文件,则完成了对该文档的空白区域的处理。
本实施例中的电子文档中的空白区域处理方法,可以有效的减少文档中的空白区域,通过选择合理的条件,将空白区域的范围尽量缩小,保证文档显示时的紧凑型,提高终端设备的屏幕的利用率,降低用户不必要的翻页操作,提高用户体验。
实施例2:
本实施例中提供一种电子文档中的空白区域处理方法,是对ePub格式的文档进行分析,整个处理过程的示意图如图2所示。
ePub文档中的html文本的文本元素中可能存在连续的空段落标签<p>而造成的白页区域,该白页区域如果范围较大,会影响用户的阅读体验。
本实施例中的方案包括具体步骤如下:
1.ePub文档内部是一个zip包,先将其解压缩,得到章节文件所在目录(OPS或OEBPS),然后按照目录文件中描述的顺序确定xhtml/html章节文件的遍历顺序。
2.依次检测所有章节文件的html标签,判断可能造成空白行的标签,比如段落标签<p>值为空格、换行等。
3.在每个章节文件内计算连续空白行的高度,记录空白行所在<p>标签对应的样式文件内描述的行高和行间距,得到连续空白区域的总高度。
4.设定一个比例系数(小于1,如0.2),当空白区域总高度大于屏幕高度*比例系数时,就将此空白区域用一个空行代替。
5.从被替换后的空行开始继续检测,直到该文件内所有满足条件的空白行都处理过。
6.按照上述算法,依次处理剩余的章节文件内的空白行。
本实施例中的上述方案,先将ePub文档解压缩,找到章节文件所在目录,遍历该目录下后缀为xhtml或html的文件内容,在每个文件中统计连续空白行的行数,计算出此空白区域的高度,与当前设备可显示区域的高度做比较,当空白区域高度大于可显示区域的一定比例时,将此连续空白行对应的的html标签替换为一个空白行,从而实现过滤白页的目的。该方案采用一种特定的白页过滤方法,既减少了用户的多余操作,又在最大程度上保留了文档原有的正常的排版间隔信息,使用获得较好的使用体验。
实施例3:
本实施例中给出一个具体的应用实例,用于处理ePub文档中的空白区域,假设目标设备可见区域的高度为H,每一行的高度为h,h等于行高和行间距的和。
第一步,对ePub文档解压缩,遍历所有章节对应的html/xhtml文件,共有m个章节;
第二步,从第一章开始,遍历章节文件内的html标签,设置一个空白行计数器sum,初始值设置为0;
第三步,在该章节文件内,每检测到一个连续的空行,sum值加1,如果空行的下一行不为空行,则sum=0;
第四步,当sum*h>=H*p时,将该连续的sum行用一个空行代替,sum重新设置为0,p为比例系数,根据需要设置;
第五步,持续执行第四步,直到检测到该章文件末尾;
第六步,循环执行第三步到第五步,直到遍历完m个章节文件。
如图3给出了一个未处理ePub空白区域的文档显示效果图,其中第二页为空白页,第一页和第三页中有多处空白区域。图4给出了采用本实施例中的方法处理后的效果图,按照本实施例中的方法进行空白区域过滤后,第二页中的空白页被删除,原来第三页中的内容依次补充到第一页中。本实施例中的p的取值为2/3,只对超过屏幕2/3区域的空白区域进行合并处理,因此第一页中“排他性”上方的空白区域,未达到屏幕的2/3区域,是保留的。
实施例4:
本实施例中提出一种电子文档中的空白区域处理系统,包括
空白行提取单元01:提取文档中的空白行;
空白区域提取单元02:根据所述空白行获取空白区域的高度;
判断单元03:根据所述空白区域的高度,确定是否需要处理;
合并单元04:将需要处理的空白区域内的空白行合并。
其中,所述空白行提取单元01包括:
章节目录获取子单元:获取文档的章节文件和目录文件;
遍历子单元:根据目录文件确定所述章节文件的遍历顺序;
提取子单元:依次检测每个章节文件的段落标签,获取空白行的标签。此处的所述空白行的标签至少包括段落标签值为空格的标签或段落标签纸为换行的标签。
其中,空白区域提取单元02包括
行高和行间距提取子单元:获取空白行所在段落标签对应的样式属性文件内描述的行高和行间距;
总高度计算子单元:根据所述行高、行间距以及空白行的数量计算空白区域的总高度。
其中,所述判断单元03包括
预设子单元:预先设置比例系数;
屏幕高度获取子单元:获取屏幕高度;
判断子单元:当空白区域的高度大于所述屏幕高度与所述比例系数的乘积时,需要进行处理。
其中,合并单元04包括合并子单元,将此空白区域内的空白行合并为一个或几个空白行。
此外,还包括:
循环单元:依次处理每个章节文件中的空白行;
遍历单元:按照所述遍历顺序处理所有章节文件。
本系统可以智能提升阅读体验,通过特定的白页过滤方法,既减少了用户的多余操作,又在最大程度上保留了文档原有的正常的排版间隔信息。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。