具体实施方式
图1为本发明提供的电子书处理方法实施例一的流程图,如图1所示,本实施例提供的电子书处理方法,既适用于作为阅读器的用户终端设备从电子书制作设备中获得电子书后在本地对电子书进行排版处理的场景,此时,用户终端设备需要结合自身屏幕大小对电子书进行排版处理;又适用于电子书管理员通过制作设备在制作电子书时对电子书进行排版处理的场景,此时,制作设备需要结合向其发送电子书获取请求的用户终端设备或多种其预先获知的终端设备的屏幕大小信息对电子书进行排版处理,以供不同终端设备对电子书进行阅读呈现。本实施例提供的电子书处理方法可以由一处理装置来执行,该处理装置根据上述两种应用场景的不同,既可以集成在电子书制作设备中,也可以集成在作为阅读器的用户终端设备中,也可以单独设置。
本实施例提供的电子书处理方法包括:
步骤101、接收电子书排版指令,获取需要显示所述电子书的用户终端的屏幕大小信息;
步骤102、根据所述屏幕大小信息,对所述电子书中各数据元素进行排版处理,得到与所述用户终端的屏幕大小相适应的电子书内容。
本实施例中,根据上述两种应用场景的不同,既可以由电子书制作设备中的处理装置来完成电子书排版处理过程,也可以由作为阅读器的用户终端中的处理装置来完成对其从制作设备中获取的电子书的排版处理过程。但是,本实施例提供的方法尤其适用于制作设备在电子书制作过程中对电子书进行排版处理,同时,在阅读器获取到经过排版处理的电子书后,采用与制作设备中相同的处理方法对电子书进行再排版,进而最终呈现经再排版后的电子书内容的场景。也就是说,在作为阅读器的用户终端中采用与制作设备相同的排版引擎对电子书进行再次排版,相当于一次“解码操作”,有利于避免现有技术中普遍采用的电子书在阅读器上直接呈现所导致的排版信息丢失或发生错误的问题,也有利于保证在制作过程中所具有的版面效果与在阅读器上最终呈现的效果完全一致。由于在阅读器中和在制作设备中采用的排版处理方法相同,因此,本实施例中仅以择一方式进行电子书排版处理过程的说明。
具体地,处理装置在接收到制作侧或者阅读侧发起的电子书排版指令时,首先需要获取显示该电子书的用户终端的屏幕大小信息,该用户终端例如可以是智能手机、平板电脑、PC机等,不同的用户终端具有不同的屏幕大小。在获得该用户终端的屏幕大小信息后,以该屏幕大小信息作为参考依据,对电子书中的各种数据元素进行排版处理,从而得到与该用户终端屏幕大小相适应的电子书内容。其中,电子书中的数据元素主要分为两类,即段落文字元素和非段落文字元素,而非段落文字元素主要包括表格、图片、公式等。也就是说,本实施例中的数据元素,是将某一类型的元素作为一个整体来考虑,而非现有技术中通常将数据元素以点、线、面来进行描述的,比如对于一个表格,现有技术中是以表格中的各条线的位置、交叉关系来描述的,这种描述在排版时往往会造成较低的处理效果,且版面效果也较差。而本实施例中将电子书中的各数据元素作为一个整体考虑,以用户终端屏幕大小为根据,对各数据元素进行排版处理,以使电子书与用户终端屏幕大小相适应,而且还有利于提高排版处理效率。
本实施例中,通过在收到的电子书排版指令中获取需要显示所述电子书的用户终端的屏幕大小信息,以使能够根据该屏幕大小信息对电子书中各数据元素进行排版处理,从而得到与用户终端的屏幕大小相适应的电子书内容,从而克服了现有技术中电子书在不同大小的终端上显示时,显示内容时常无法满足用户的需求的缺陷。
图2为本发明提供的电子书处理方法实施例二的流程图,如图2所示,该方法包括:
步骤201、接收电子书管理员发送的电子书排版指令,并从所述电子书排版指令中获取需要显示所述电子书的用户终端的屏幕大小信息;
本实施例中,以处理装置接收电子书制作设备发起的电子书排版指令为例进行说明,具体地,处理装置接收电子书管理员发送的电子书排版指令,并从该指令中获取需要显示所述电子书的用户终端的屏幕大小信息。在实际应用中,可以是用户通过其终端设备向电子书制作设备发起电子书获取请求,而该请求中包含有该用户终端的屏幕大小信息,使得电子书管理员能够在制作设备接收到的请求中获知用户终端的屏幕大小信息,进而电子书管理员向处理装置发送携带有该用户终端屏幕大小信息的电子书排版指令,以使处理装置能够从该排版指令中获取需要显示所述电子书的用户终端的屏幕大小信息。另外,该用户终端的屏幕大小信息也可以是制作设备预先根据市场中的各种终端设备类型统计获知的,为了保证制作的电子书能够在不同屏幕大小的用户终端上显示,在制作电子书时,电子书管理员可以向处理装置发送携带有目标用户终端屏幕大小信息的电子书排版指令,以使该处理装置获取到该屏幕大小信息。
进一步地,步骤201也可以由下述步骤替代:
接收用户终端的用户发送的电子书排版指令,并从所述用户预存的信息中获取所述用户终端的屏幕大小信息。
本实施例中,处理装置是预置入用户终端中的,且用户终端中预先存储有该用户终端的屏幕大小信息,比如在用户终端的属性文件中存储有该终端的屏幕大小信息。具体地,该处理装置在接收到用户发送的电子书排版指令后,从预存的信息(如终端属性文件)中获取该用户终端的屏幕大小信息。
步骤202、确定与所述屏幕大小信息对应的排版区域,所述排版区域包括栏数和栏宽;
步骤203、确定与所述排版区域对应的电子书中各数据元素的排版格式,所述排版格式是以所述排版区域为参考来描述的;
步骤204、根据所述排版格式对所述电子书中各数据元素在所述排版区域中进行排版处理。
本实施例中,处理装置中配置有对电子书进行排版所需的排版文件,该排版文件中规定了电子书排版过程中需要遵照的处理标准。需要说明的是,本实施例中所述的排版文件是对现有的具有流式排版能力的排版文件(比如方正的书版小样文件标准、微软的OOXML文件标准)的扩展,在其中扩展了以不同用户终端的屏幕大小作为电子书排版处理重要约束参数的处理标准。其中,该排版文件中描述了电子书排版区域的确定规则和对电子书中各数据元素进行排版所需要的排版格式的确定规则。以现有流式排版文件为基础进行扩展,无需重新开发新的排版文件,大大降低了开发难度,节约人员成本,在具有现有流式排版文件所具有的优势的同时,还具有了良好的版面效果。
具体地,当处理装置从接收到的电子书排版指令中获取用户终端的屏幕大小信息后,在排版文件中确定与该屏幕大小信息对应的排版区域,其中,该排版区域包括栏数和栏宽。例如,若用户终端的屏幕大小为第一尺寸时,则排版区域中仅为一栏,且栏宽小于或者等于该第一尺寸;若用户终端的屏幕大小为第二尺寸,假设该第二尺寸大于第一尺寸,则排版区域中均匀分为两栏,每栏的栏宽小于或等于该第二尺寸的一半。本实施例中,排版区域除了栏数和栏宽之外,也可以包括诸如行间距宽度等信息。
在确定了与用户终端屏幕大小信息对应的排版区域之后,进一步需要确定与该排版区域对应的电子书中各数据元素的排版格式,所述排版格式是以所述排版区域为参考来描述的。
具体地,若电子书中的数据元素为段落文字元素,则所述确定与排版区域对应的电子书中各数据元素的排版格式,所述排版格式是以所述排版区域为参考来描述的,包括:
根据所述栏宽,确定在所述段落文字中***换行符的***位置和所述段落文字的段首位置,所述***位置和段首位置是以所述栏宽为参考单位来描述的。本实施例中,对段落文字类的元素进行排版主要包括确定换行符的***位置和段首位置的确定,而该***位置和段首位置以所述栏宽为参考单位进行描述,比如段首位置位于1/6栏宽处,换行符***位置位于栏宽处。通过采用这种相对描述方式,有利于电子书内容在不同的用户终端上进行显示时,具有一致的版面效果。
值得说明的是,本实施例中,除对段落文字的段首位置和换行符***位置的确定之外,还可以包括对字体大小等方面的处理规定,该字体大小等的规定与现有技术中类似,不再赘述。
在确定了与排版区域对应的电子书中各数据元素的排版格式后,需要根据所述排版格式对所述电子书中各数据元素在所述排版区域中进行排版处理,具体地,针对段落文字元素,该排版处理过程包括:
在所述排版区域的当前分栏区域中定位所述段首位置;
在所述***位置处***换行符,以使所述段落文字在到达所述***位置时自动换行。
进一步地,若电子书中的数据元素为非段落文字元素,则所述确定与所述排版区域对应的电子书中各数据元素的排版格式,所述排版格式是以所述排版区域为参考来描述的,包括:
根据所述栏宽,确定所述非段落文字元素所占区域大小和起始位置,所述区域大小和起始位置是以所述栏宽为参考单位来描述的。例如,在对电子书中在固定位置(3cm,13cm)处的一固定尺寸大小(10cm×10cm)的图片进行排版处理时,以栏宽为参考单位来描述其所占区域大小和起始位置,如所占区域大小为3/4栏宽×3/4栏宽,起始位置位于坐标为(1/6栏宽,1/2栏宽)处。
相应地,根据所述排版格式对所述电子书中的非段落文字元素在所述排版区域中进行排版处理,包括:
在所述排版区域的当前分栏区域中定位所述起始位置;
以所述起始位置为原点对所述非段落文字元素进行缩放,以使所述非段落文字元素所占面积大小为所述区域大小。
本实施例中,所述排版格式以以下格式类型中的任一格式类型进行描述:脚本格式、XML格式、二进制格式、HTML格式。
值得说明的是,以上仅是对段落文件元素和非段落文件元素根据用户终端屏幕大小信息进行自适应排版处理的过程,排版文件中包括但不限于对段落文件元素的换行符***位置、段首位置以及非段落元素起始位置、所占区域大小的排版格式的描述,还可以根据实际需要包含其他诸如文字与图片叠加效果等排版格式的描述,不以本实施例为限。
另外,值得说明的是,在电子书制作设备对电子书进行排版处理的过程中,电子书制作设备还可以接收电子书管理员下发的调整指令,以对电子书排版过程进行调整控制。比如,当管理员在制作设备的显示界面中发现排版的版面效果不理想时,可以通过修改排版文件中的相关排版处理参数,如排版区域、排版格式以及适合的终端屏幕大小信息等来对重新调整排版处理过程。随后,若某一用户终端设备向该制作设备请求获取电子书时,该用户终端设备中需要具有与制作设备最终排版处理所采用的相同的排版引擎,即用户终端设备需要预先获取到制作设备最终使用的排版引擎,以便对获取到的电子书进行正确的解析呈现。也就是说,作为阅读器的用户终端设备仅需完成解析呈现的过程,无需对电子书进行再次排版调整。
本实施例中,根据获得的用户终端的屏幕大小信息确定与之对应的排版区域,并以该排版区域为参考来描述对电子书中各数据元素进行排版所用的排版格式,不但能够得到与用户终端的屏幕大小相适应的电子书内容,还能够通过相对于排版区域的排版格式的描述,使得电子书中各数据元素在不同的用户终端中都具有较好的版面效果。
图3为本发明提供的电子书处理装置实施例一的示意图,如图3所示,该装置包括:
接收模块11,用于接收电子书排版指令,获取需要显示所述电子书的用户终端的屏幕大小信息;
处理模块12,用于根据所述屏幕大小信息,对所述电子书中各数据元素进行排版处理,得到与所述用户终端的屏幕大小相适应的电子书内容
本实施例的装置可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4为本发明提供的电子书处理装置实施例二的示意图,如图4所示,该装置在图3所示实施例的基础上,所述接收模块11具体用于:
接收电子书管理员发送的电子书排版指令;
从所述电子书排版指令中获取需要显示所述电子书的用户终端的屏幕大小信息;
或者,
接收用户终端的用户发送的电子书排版指令;
从所述用户预存的信息中获取所述用户终端的屏幕大小信息。
进一步地,所述处理模块12包括:
第一确定单元121,用于确定与所述屏幕大小信息对应的排版区域,所述排版区域包括栏数和栏宽;
第二确定单元122,用于确定与所述排版区域对应的电子书中各数据元素的排版格式,所述排版格式是以所述排版区域为参考来描述的;
处理单元123,用于根据所述排版格式对所述电子书中各数据元素在所述排版区域中进行排版处理。
进一步地,若所述数据元素为段落文字元素,则所述第二确定单元122具体用于:
根据所述栏宽,确定在所述段落文字中***换行符的***位置和所述段落文字的段首位置,所述***位置和段首位置是以所述栏宽为参考单位来描述的;
相应地,所述处理单元123具体用于:
在所述排版区域的当前分栏区域中定位所述段首位置;
在所述***位置处***换行符,以使所述段落文字在到达所述***位置时自动换行。
若所述数据元素为非段落文字元素,则所述第二确定单元122具体用于:
根据所述栏宽,确定所述非段落文字元素所占区域大小和起始位置,所述区域大小和起始位置是以所述栏宽为参考单位来描述的;
相应地,所述处理单元123具体用于:
在所述排版区域的当前分栏区域中定位所述起始位置;
以所述起始位置为原点对所述非段落文字元素进行缩放,以使所述非段落文字元素所占面积大小为所述区域大小。
进一步地,所述排版格式以以下格式类型中的任一格式类型进行描述:
脚本格式、XML格式、二进制格式、HTML格式。
本实施例的装置可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。