发明内容
针对现有技术中的缺陷,本发明提供一种EPUB电子书的生成方法,实现了在EPUB流式内容的基础上,增加富媒体元素的应用,使版面的交互性和动态感更强。
本发明提供了一种EPUB电子书生成方法,包括:
构建文档的内容流;
在所述内容流中插入标签,所述标签用于记录与所述内容流相关的信息;
将插入标签后的内容流输出成电子版EPUB文件。
可选的,所述构建文档的内容流,包括:
遍历文档中的每个页面,构建页面的内容流;
将每个页面的内容流串接,构建文档的内容流。
可选的,所述标签包括版式标签、导航目标标签和富媒体元素标签。
可选的,所述在所述内容流中插入标签,包括:
根据所述文档的排版,在所述内容流中插入版式标签,用于记录所述内容流的版式信息;
根据所述文档页面内容的引用结构,在所述内容流中插入导航目标标签,用于记录所述内容流的导航目标信息;
根据所述文档的互动内容,在所述内容流中插入富媒体元素标签,用于记录所述内容流的富媒体元素信息。
可选的,所述根据所述文档的排版,在所述内容流中插入版式标签,用于记录所述内容流的版式信息,包括:
遍历文档中的每个页面,在所述每个页面内容流下插入页面版式标签,记录所述每个页面的布局信息;
遍历所述文档中的每个对象块,在所述每个对象块下插入版式标签,记录所述每个对象块的位置和尺寸信息;
遍历所述文档中的每个文字块,获取所述每个文字块的拆分位置,在所述每个文字块拆分位置处插入分块版式标签,记录所述每个文字块的分块信息;
遍历所述文字块中的每个分栏,获取所述每个分栏的拆分位置,在所述每个分栏拆分位置处插入分栏版式标签,记录所述每个分栏的位置和尺寸信息;
遍历所述分栏的每个文本行,获取所述每个文本行的行拆分位置,在所述每个文本行的行拆分位置处插入文本行版式标签,记录所述每个文本行的位置和尺寸信息;
遍历所述文本行中的每个字符,根据所述每个字符的位置和属性,构建包含多个连续字符的文本行内文本片段,并获取所述每个行内文本片段的拆分位置,在所述每个行内文本片段的拆分位置处插入文本行内文本片段的版式标签,记录所述每个文本行内文本片段的位置和尺寸信息。
可选的,所述根据所述文档页面内容的引用结构,在所述内容流中插入导航目标标签,用于记录所述内容流的导航目标信息,包括:
遍历所述文档中的每个页面,在所述每个页面的内容流下插入页面导航目标标签,记录所述每个页面的导航目标信息;
遍历所述文档中的每个段落,如果所述段落与所述目录级别相匹配,则在所述段落下插入目录导航目标标签,记录目录的导航目标信息;
遍历索引中的每个索引项,查找出与所述索引项对应的引用点,在所述引用点下插入索引导航目标标签,记录所述每个索引项的导航目标信息;
遍历引用结构中的每个引用项,查找出与所述引用项对应的引用点,在所述引用点下插入引用导航目标标签,记录所述每个引用项的导航目标信息。
可选的,所述记录所述内容流的导航目标信息,包括:
指定导航目标的对应引用结构的类别;
指定导航目标的对应引用项的级别;
指定导航目标的对应引用项的ID;
指定导航目标的对应引用项的标题。
可选的,所述根据所述文档的互动内容,在所述内容流中插入富媒体元素标签,用于记录所述内容流的富媒体元素信息,包括:
遍历所述文档中的互动内容;
根据所述互动内容的类别和属性,选择与所述互动内容对应的富媒体元素;
在所述互动内容下插入与所述互动内容对应的富媒体元素,记录所述富媒体元素的应用信息。
可选的,所述将插入标签后的内容流输出成电子版EPUB文件,包括:
遍历所述文档中每个页面的内容流,对所述每个页面的内容流构建HTML片段文件;
遍历所述文档中每个引用结构,为引用项以及所述HTML片段文件中的导航目标标签之间建立链接,构建导航片段文件;
将所述HTML片段文件与所述导航片段文件合并输出成EPUB文件。
可选的,所述对所述每个页面的内容流构建HTML片段文件,包括:
对所述每个页面的内容流,构建中间页面结构;
对所述每个中间页面结构,构建HTML片段文件。
由上述技术方案可知,本发明提供了一种EPUB电子书生成方法,该方法在EPUB流式内容的基础上,保留了页面布局、设计等版式信息,增加富媒体元素的应用,使版面的交互性和动态感更强,能够更好地适应多种移动客户端、阅读器,并呈现出丰富多彩的版面效果。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本实施例提供的一种EPUB电子书生成方法的流程图,如图1所示,该方法包括以下步骤:
101、构建文档的内容流。
举例来说,上述步骤包括图1中未示出的子步骤:
1011、遍历文档中的每个页面,构建页面的内容流;
1012、将每个页面的内容流串接,构建文档的内容流。
102、在所述内容流中插入标签,所述标签用于记录与所述内容流相关的信息。
举例来说,上述标签包括版式标签、导航目标标签和富媒体元素标签。
具体的,上述步骤102还包括图1中未示出的子步骤:
1021、根据所述文档的排版,在所述内容流中插入版式标签,用于记录所述内容流的版式信息;
1022、根据所述文档页面内容的引用结构,在所述内容流中插入导航目标标签,用于记录所述内容流的导航目标信息;
1023、根据所述文档的互动内容,在所述内容流中插入富媒体元素标签,用于记录所述内容流的富媒体元素信息。
103、将插入标签后的内容流输出成电子版EPUB文件。
上述方法在EPUB流式内容的基础上,保留了页面布局、设计等版式信息,增加富媒体元素的应用,使版面的交互性和动态感更强,能够更好地适应多种移动客户端、阅读器,并呈现出丰富多彩的版面效果。
为了更进一步的说明本发明实施例所述的方法,下面对上述方法进行详细的说明,本发明中的例子仅作为解释实施例,并不限定本发明所要保护的范围。
上述步骤1011,还包括图1中未示出的子步骤:
1011A、判断页面中是否存在主文字块,如果存在,将主文字块按照阅读顺序串接起来,形成页面内容流,转入步骤1011C;否则,转入下一步骤1011B;
举例来说,上述步骤中的主文字块是指页面上的主体阅读文字对象,通常是占据较大面积的文字块。在某些复杂的页面情况下,主文字块也可能很难用某种规律自动确定,也可以通过手动标识进行辅助确定。
1011B、构建虚拟的主文字块,其位置和尺寸等于版心区域,形成页面内容流。
举例来说,上述虚拟的主文字块主要是指页面主体的阅读对象。
1011C、遍历页面中的其他块,按照阅读顺序以及相对于主文字块的位置,计算出该块在主文字块对应的文章中锚定位置,插入锚点标签,记录锚定信息。
举例来说,上述步骤中的阅读顺序是指读者对页面对象习惯性的浏览顺序。电子书根据语言、题材等的不同,具有不同的阅读顺序。例如:最常见的阅读顺序是从左到右、从上到下;古籍等竖版书籍的阅读顺序是从上到下、从右到左;而维文、阿文书籍的阅读顺序是从右到左、从上到下。在某些复杂的页面情况下,阅读顺序也可能很难用某种规律自动确定,也可以通过手动排序方法进行辅助确定。
以图2所示儿童电子书的页面为例,横屏版面,含有文字块(“笔画…”、“☆某些植物…”)、拼音块(“guǒ”)、笔画块(“果”)、图像块(苹果图像)。根据步骤1011A,可识别出主文字块(“☆某些植物…”),构建出页面内容流。根据步骤1011C,可计算出其他块的锚定位置,插入锚点标签:左侧的拼音块(“guǒ”)、笔画块(“果”)、文字块(“笔画…”)插入到文章的首部(“☆某些植物…”之前);右侧的图像块(苹果图像)插入到文章的中部(“…红苹果,”之后)。
具体的,上述步骤1021包括以下步骤:
1021A、遍历文档中的每个页面,在所述每个页面内容流下插入页面版式标签,记录所述每个页面的版心、边空、物理页号、页码、左右页等的布局信息;
1021B、遍历所述文档中的每个对象块,在所述每个对象块下插入版式标签,记录所述每个对象块的位置和尺寸信息;
1021C、遍历所述文档中的每个文字块,获取所述每个文字块的拆分位置,在所述每个文字块拆分位置处插入分块版式标签,记录所述每个文字块的分块信息;
1021D、遍历所述文字块中的每个分栏,获取所述每个分栏的拆分位置,在所述每个分栏拆分位置处插入分栏版式标签,记录所述每个分栏的位置和尺寸信息;
1021E、遍历所述分栏的每个文本行,获取所述每个文本行的行拆分位置,在所述每个文本行的行拆分位置处插入文本行版式标签,记录所述每个文本行的位置和尺寸信息;
1021F、遍历所述文本行中的每个字符,根据所述每个字符的位置和属性,构建包含多个连续字符的文本行内文本片段,并获取所述每个行内文本片段的拆分位置,在所述每个行内文本片段的拆分位置处插入文本行内文本片段的版式标签,记录所述每个文本行内文本片段的位置和尺寸信息。
上述步骤以图2所示的儿童电子书的页面主文字块(“☆某些植物…”)为例,根据步骤1021C,计算块拆分位置(“…姓。”之后),插入分块版式标签;根据步骤1021D,计算出栏拆分位置(“…姓。”之后),插入分栏版式标签。
以行(“树上许多红苹果,”)为例,根据步骤1021E,计算行拆分位置(“…红苹果,”之后),插入文本行版式标签;由于行具有撑满效果,根据步骤1021F,可以构建出两个行内文本片段(“树上许多红苹果”、“,”),分别在拆分位置处插入行内文本片段版式标签。
上述步骤1022包括图中未示出的子步骤:
1022A、遍历所述文档中的每个页面,在所述每个页面的内容流下插入页面导航目标标签,记录所述每个页面的导航目标信息;
1022B、遍历所述文档中的每个段落,如果所述段落与所述目录级别相匹配,则在所述段落下插入目录导航目标标签,记录目录的导航目标信息;
1022C、遍历索引中的每个索引项,查找出与所述索引项对应的引用点,在所述引用点下插入索引导航目标标签,记录所述每个索引项的导航目标信息;
1022D、遍历引用结构中的每个引用项,查找出与所述引用项对应的引用点,在所述引用点下插入引用导航目标标签,记录所述每个引用项的导航目标信息。
在具体应用中,上述记录所述内容流的导航目标信息,包括:
指定导航目标的对应引用结构的类别,如页面序列、目录、索引等;
指定导航目标的对应引用项的级别;
指定导航目标的对应引用项的ID;
指定导航目标的对应引用项的标题。
上述步骤1023包括图中未示出的子步骤:
1023A、遍历所述文档中的互动内容,如:音频、视频、动画、图像浏览等。
1023B、根据所述互动内容的类别和属性,选择与所述互动内容对应的富媒体元素;
1023C、在所述互动内容下插入与所述互动内容对应的富媒体元素,记录所述富媒体元素的应用信息。
具体的,上述步骤中的富媒体是指具有动画、声音、视频和/或交互性的信息传播方法。以图2所示儿童电子书为例,在阅读器端,点击拼音块(“guǒ”)能播放读音、点击笔画块(“果”)能按照笔顺书写汉字。根据步骤1023,可以为其插入对应的富媒体元素标签。
上述步骤103中将插入标签后的内容流输出成电子版EPUB文件,具体包括如下步骤:
1031、遍历所述文档中每个页面的内容流,对所述每个页面的内容流构建HTML片段文件;
举例来说,上述步骤1031包括以下子步骤:
1031A、对所述每个页面的内容流,构建中间页面结构;
在具体应用中,上述步骤包括以下子步骤:
1031A-1、创建中间页面结构,并将页面版式标签中的页面布局信息记录到中间页面结构上;
1031A-2、对每个文字块,在对应的文档中,从分块版式标签向前查找上一个分块版式标签,如果找到,则将两个分块版式标签之间的内容截取为中间文字块结构;否则,将分块版式标签之前的内容,截取为中间文字块结构;并将分块版式标签中的分块信息记录到中间文字块结构上;
1031A-3、对每个分栏,在中间文字块结构中,从分栏版式标签向前查找上一个分栏版式标签,如果找到,则将两个分栏版式标签之间的内容截取为中间文字栏结构;否则,将分栏版式标签之前的内容截取为中间文字栏结构;并将分栏版式标签中的分栏信息记录到中间文字栏结构上;
1031A-4、在中间文字栏结构中,对每个段落,构建中间段落结构;
1031A-5、对每个文本行,在中间段落结构中,从文本行版式标签向前查找上一个文本行版式标签,如果找到,则将两个文本行版式标签之间的内容截取为中间文本行结构;否则,将文本行版式标签之前的内容截取为文本行结构;并将文本行版式标签中的文本行信息记录到中间文本行结构上;
1031A-6、对每个行内文本片段,在中间文本行结构中,从每个行内文本片段版式标签向前查找上一个行内文本片段版式标签,如果找到,则将两个行内文本片段版式标签之间的内容截取为中间行内文本片段结构;否则,将行内文本片段版式标签之前的内容截取为中间行内文本片段结构;并将行内文本片段标签中的行内文本片段信息记录到中间行内文本片段结构上;
1031A-7、将导航目标标签中的导航目标信息记录到对应的中间结构上;
1031A-8、将富媒体元素标签中的富媒体元素信息记录到对应的中间结构上。
1031B、对所述每个中间页面结构,构建HTML片段文件。
在具体应用中,上述步骤包括以下子步骤:
1031B-1、创建在HTML的页面区域标签,并记录页面区域的版式条件和位置、尺寸;
1031B-2、对每个中间文字块结构,构建HTML的文档标签;并在HTML的文档标签下,构建HTML的文字块区域标签,并记录文字块区域的版式条件和位置、尺寸;
1031B-3、对每个中间文字栏结构,构建HTML的文字栏区域标签,并记录文字栏区域的版式条件和位置、尺寸;
1031B-4、对每个中间段落结构,构建HTML的段落标签;
1031B-5、对每个中间文本行结构,构建HTML的文本行区域标签,并记录文本行区域的版式条件和位置、尺寸;
1031B-6、对每个中间行内文本片段结构,构建HTML的文本片段区域标签,并记录文本片段区域的版式条件和位置、尺寸;并在HTML的文本片段区域下,构建HTML的文本片段内容标签,输出实际的片段内容;
1031B-7、如果中间结构上记录了导航目标信息,则在对应HTML的标签下输出HTML的导航目标标签。
1031B-8、如果中间结构上记录了富媒体元素信息,则在对应HTML的标签下输出HTML的富媒体元素标签。
1032、遍历所述文档中每个引用结构,为引用项以及所述HTML片段文件中的导航目标标签之间建立链接,构建导航片段文件;
1033、将所述HTML片段文件与所述导航片段文件合并输出成EPUB文件。
综上所述,上述步骤中的版式条件是指一组特定查看条件,通常以窗口的大小为依据。在媒体查询模块中允许添加媒体查询表达式,用以指定媒体类型,然后根据媒体类型来选择应该使用的样式。结合响应式Web设计的理念,可以在最佳的窗口尺寸条件下(如图3所示),呈现电子书的版式阅读效果,兼顾内容的表达和版式的美观;而其他的窗口尺寸条件下(如图4所示),呈现电子书的流式阅读效果,只关注内容的表达。
以上所述各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。