生成二进制文件格式电子书的方法及其生成的电子书 【技术领域】
本发明涉及计算机编码生成的文件格式,特别是涉及一种生成二进制文件格式电子书的方法及其生成的电子书。
背景技术
在电子书格式的技术中,比较主流的是ePub和PDF两种格式技术。这两种文件格式技术既说明了电子书的逻辑格式,还说明了电子书的二进制文件格式。
其中,ePub是一个由国际数位出版论坛(IDPF)开发的开放电子书格式标准,包含以下三个标准:
开放出版结构(Open Publication Structure,OPS)2.0,以定义内容的版面;
开放包裹格式(Open Packaging Format,OPF)2.0,定义以XML为基础的.epub档案结构;
OEBPS容器格式(OEBPS Container Format,OCF)1.0,将所有相关文件打包至一个ZIP压缩文件之中。
ePUB电子书的逻辑格式由OPS、OPF和OCF中的抽象容器部分进行规定,而二进制文件格式由OCF中的物理容器部分进行规定。OCF中的物理容器部分规定,隶属于同一电子书的所有文件要打包成一个ZIP文件,以ZIP格式为二进制文件格式。
因为ZIP包的单一性,所以ePUB电子书只能进行整体压缩、整体加密和整体数字版权保护(DRM),其二进制文件格式没有为内容管理提供便利;同时,由于ZIP包的封闭性,阅读系统必须在下载整个文件后才能进行读取,对于有限资源(传送、计算或存储有较大限制)的阅读系统而言,提高大文件电子书的阅读体验将是很困难的。
PDF文件格式是由美国Adobe公司开发的电子文档格式,PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件。PDF文件使用了工业标准的压缩算法,通常比PostScript文件小,易于传输与储存。
但是,与ePUB的问题类似,它仍是把多个内容文件直接打包成一个文件,这就导致其二进制格式缺乏对内容管理的支持,同时必须下载整个文件才能进行读取。
在资源(内存、CPU处理能力、硬件速度)相对有限、用户对反应速度又有较高要求的阅读系统中,要阅读大文件电子书,往往具有较大的处理和展示瓶颈。这就需要实现对电子书进行分块读取和排版,甚至需要进行基于显示语义的文档分块。
同时,对于内容管理和DRM而言,如果不能独立的管理到电子书的各个部分(比如每一章)的二进制文件,则内容管理必须依赖于附加的信息系统,其管理效率和管理基础都受到了限制。
因此,目前的电子书二进制文件格式技术存在以下缺陷:
(1)电子书二进制文件为封闭的整体,缺少对资源有限的阅读系统的支持;
(2)电子书二进制文件为单一的整体,缺少对内容管理与DRM的深度支持。
【发明内容】
针对现有技术中存在的缺陷和不足,本发明的目的是提出一种生成二进制文件格式电子书的方法,能够将电子书内容分块存储,使得电子书文件具有开放的整体性特点,能够为资源有限的阅读系统提供便利,可以根据资源状况按块解压按块展示,以文件块为单元进行组织,使得电子书二进制文件具有了组织灵活性特点,能够为电子书内容管理和DRM提供各种颗粒度的支持,可以根据需要,按章、按节、按页进行分块的内容管理和DRM。
为了达到上述目的,本发明提出一种生成二进制文件格式电子书的方法,包括:
步骤1:将电子书内容分成多个子文件存储于多个数据区;
步骤2:生成文件记录区以记录各数据区的起始位置及长度,以及生成的电子书的信息;
步骤3:将所述多个数据区与所述文件记录区生成电子书。
作为上述技术方案的优选,所述步骤1进一步包括:
生成数据区文件映射表的步骤,所述数据区文件映射表用于描述存储于所述数据区内的各子文件的信息;
生成数据区文件实体内容的步骤,所述数据区文件实体内容包括存储于所述数据区内的各子文件中相互关联的结构文件和素材文件。
作为上述技术方案地优选,所述步骤2进一步包括:
生成文件格式记录区的步骤,所述文件格式记录区用于记录生成的电子书的信息;
生成组织文件区的步骤,所述组织文件区用于存储描述生成的电子书的组织信息的一个或多个文件;
生成数据区索引表的步骤,所述数据区索引表用于记录各数据区的起始位置及长度。
作为上述技术方案的优选,生成组织文件区的步骤进一步包括:
生成组织文件区文件映射表的步骤,所述组织文件区文件映射表用于记录所述组织文件区中存储的各文件的信息;
生成组织文件区文件实体内容的步骤,所述组织文件区文件实体内容为所述组织文件区中存储的各文件的实体内容。
本发明还提出一种二进制文件格式电子书,包括:
多个数据区,所述电子书内容分成多个子文件存储于所述多个数据区;
文件记录区,用于记录所述电子书的信息以及各数据区的起始位置及长度。
作为上述技术方案的优选,所述数据区进一步包括:
数据区文件映射表,用于描述存储于所述数据区内的各子文件的信息;
数据区文件实体内容,包括存储于所述数据区内的各子文件中相互关联的结构文件和素材文件。
作为上述技术方案的优选,所述文件记录区进一步包括:
文件格式记录区,用于记录生成的电子书的信息;
组织文件区,用于存储描述生成的电子书的组织信息的一个或多个文件;
数据区索引表,用于记录各数据区的起始位置及长度。
作为上述技术方案的优选,所述组织文件区进一步包括:
组织文件区文件映射表,用于记录所述组织文件区中存储的各文件的信息;
组织文件区文件实体内容,其为所述组织文件区中存储的各文件的实体内容。
本发明提出的二进制文件格式电子书设计了电子书各个部分进行组织联接的方法。本发明以二进制数据块为基本单元,然后再将构成电子书的各文档合并为单一文件。这种方式使得各数据块可独立处理,既保持了原文档的信息内容和外观属性,而每个数据块又可以独立进行存储、解析、加密、压缩和DRM,方便了电子书的内容管理活动;阅读系统和设备可以根据自身资源的情况,灵活的决定一次处理一个或多个分块。在本发明设计的二进制文件中,构成电子书的三类文件:电子书组织文件、结构文件和素材文件,分别存储于二进制文件的不同位置并使用索引机制组织联接。
本发明既兼顾了单一文件便于电子书存储的优点,又充分适应了用户对阅读系统的要求,以文件块为单位独立存储和解析展示,每个文件分块又可以独立进行存储、解析、加密、压缩和DRM,提升了用户的操作体验,使得资源限制差异明显的阅读系统能够提供近似的阅读体验,并且方便了电子书的内容管理活动。
下面结合附图,对本发明的具体实施方式作进一步的详细说明。对于所属技术领域的技术人员而言,从对本发明的详细说明中,本发明的上述和其他目的、特征和优点将显而易见。
【附图说明】
图1为本发明提出的生成二进制文件格式电子书的方法的优选实施例的示意图;
图2为根据本发明提出的生成二进制文件格式电子书的方法生成的二进制文件格式的电子书的结构示意图。
【具体实施方式】
以下为本发明提出的生成二进制文件格式电子书的方法的第一优选实施例,如图1所示,包括:
步骤101:将电子书内容分成多个子文件存储于多个数据区;
步骤102:生成文件记录区以记录各数据区的起始位置及长度,以及生成的电子书的信息;
步骤103:将所述多个数据区与所述文件记录区生成电子书。
这样的方法使生成的二进制文件格式的电子书在结构上由多个二进制数据块(包括文件记录区和多个数据区)组成,可以实现对单独的二进制数据块的独立处理:包括存储、解析、加密、压缩和DRM。阅读该电子书的系统或设备可以根据自身资源的情况,灵活地决定一次处理一个或多个二进制数据块。
由于要将电子书书内容分块存储,因此,需要描述并储存该分块存储的信息,以使阅读系统或设备能正确无误地对每个分块进行读取和操作,因此,将所述电子书内容分成多个子文件存储于多个数据区的步骤进一步包括:
生成数据区文件映射表的步骤,所述数据区文件映射表用于描述存储于所述数据区内的各子文件的信息(如表1中的序号4-11);
生成数据区文件实体内容的步骤,所述数据区文件实体内容包括存储于所述数据区内的各子文件中相互关联的结构文件和素材文件。
其中,每个数据区中可以存储多个子文件。
数据区文件映射表中具体可以包括如表1所示的各种信息,并且表示各信息的字节数以及值也可按照表1进行设定:
表1:
序号 位描述 长度 值说明 1 数据区ID 2bytes 表示该数据区编号 2 文件个数 2bytes 表示该数据区内的文件个数 3 文件映射表长度 2bytes 区映射表字节长度信息,若加密,则该长度为加密后的长度 4 文件ID 2bytes 文件在区内的次序编号,从0开始 5 文件压缩标识 1bytes 该文件是否压缩,以及压缩方式。 0为不压缩,1为GZIP格式,可扩展。 6 文件管理标识 1bytes 该文件是否设定管理方式,0为无设定,非0为不同的管理方式。 7 文件管理方式ID 24bytes 表示该文件管理方式的ID, 系统根据该ID查找并调用对应的处理方式 8 文件起始位置 4bytes 文件起始位置相对于数据区起始位置的偏移量 9 文件长度信息 4bytes 文件长度信息 10 文件名称长度 2bytes 该文件名称字符串长度 11 文件名称 xbytes 文件名称字符串,含路径和后缀名 ...... 如果存在多个文件则重复4-11 内容文件实体 xbytes 以下存放文件实体内容。包括结构文件和素材文件。
更进一步地,上述生成文件记录区的步骤可以细化为以下具体步骤:
生成文件格式记录区的步骤;
生成组织文件区的步骤;
生成数据区索引表的步骤;
其中,文件格式记录区用于记录生成的二进制文件格式的电子书的信息,具体可以包括如表2所示的各种信息,并且表示各信息的字节数以及值也可按照表2进行设定:
表2:
序号 内容 长度 值说明 1 文件类型标识 4bytes 可根据情况定义 2 文件格式版本号 2bytes 表明文件格式的版本,第一字节为主版本号,第二字节为子版本号。 3 电子书类型 2bytes 电子书类型标识,2个字节; 第一字节为媒体类型分类;第二字节为某种媒体下的子分类。 4 文件创建日期 4bytes 该文件创建日期,数字格式,如20061212 5 文件修改日期 4bytes 该文件最近一次修改日期,数字格式,如20080101 6 电子书组织文件区 起始位置 4bytes 电子书组织文件区段起始位置, 相对于整个电子书文件起始位置的位移 7 数据区索引表 起始位置 4bytes 数据区索引表起始位置, 相对于整个电子书文件起始位置的位移 8 文件记录区长度 4bytes 记录整个文件记录区的长度信息 (包括文件格式记录区、电子书组织文件区、数据区索引表) 9 预留字段 4bytes 预留字段
组织文件区用于存放描述生成的电子书的组织信息的一个或多个文件。电子书的组织信息包括了目录、索引、导航、书签、版权说明、封面/底、扉页等。生成组织文件区的步骤又可以进一步包括:
生成组织文件区文件映射表的步骤,所述组织文件区文件映射表(如表3中的序号2-7,其中3至7为映射表的一条记录)用于记录所述组织文件区中存储的各文件的信息;
生成组织文件区文件实体内容的步骤,所述组织文件区文件实体内容为所述组织文件区中存储的各文件的实体内容。
组织文件区中可以包括如表3所示的各种信息,并且表示各信息的字节数以及值也可按照表3进行设定:
表3:
序号 内容 长度 值说明 1 区内文件个数 2bytes 表示组织文件区内有几个文件 2 文件映射表长度 2bytes 文件映射表字节长度信息 3 文件ID 2bytes 文件在区内的次序编号,从0开始 4 文件起始位置 4bytes 文件起始位置相对于电子书组织文件区起始位置的位移 5 文件长度 4bytes 文件长度信息 6 文件名称长度 2bytes 该文件名称字符串长度,含后缀名 7 文件名称 xbytes 文件名称字符串 如果存在多个文件则重复3-7 8 文件实体内容 xbytes 存放描述电子书组织信息的各个文件
数据区索引表用于记录各数据区的起始位置及长度。数据区索引表中具体可以包括如表4所示的各种信息,并且表示各信息的字节数以及值也可按照表4进行设定:
表4:
序号 位描述 长度 值说明 1 数据区总个数 2bytes 表示该二进制文件含多少个数据区 2 区映射表长度 2bytes 区映射表字节长度信息,若加密,则该长度为加密后的长度 3 数据区id 2bytes 区ID编号 4 区起始位置 4bytes 相对于整个电子书文件起始位置的位移 5 区长度 4bytes 区的长度信息 ...... 多个文件重复3-5
采用上述方法生成的二进制文件格式的电子书的3类构成文件:组织信息文件、结构文件和素材文件虽然分别存储于二进制文件的不同位置,但通过使用索引机制就可以将其组织联接。
如图2所示,一种二进制文件格式电子书,其物理格式包括:
文件记录区201和多个数据区202,电子书内容分成多个子文件存储于所述多个数据区;文件记录区201用于记录所述电子书的信息以及各数据区的起始位置及长度。
数据区202可以进一步包括:
数据区文件映射表203,用于描述存储于所述数据区内的各子文件的信息;
数据区文件实体内容,其包括存储于所述数据区内的各子文件中相互关联的结构文件204和素材文件205。
文件记录区201进一步包括:
文件格式记录区206,用于记录生成的电子书的信息;
组织文件区207,用于存储描述生成的电子书的组织信息的一个或多个文件;
数据区索引表208,用于记录各数据区的起始位置及长度。
其中,组织文件区207又可以进一步包括:
组织文件区文件映射表,用于记录所述组织文件区中存储的各文件的信息;
组织文件区文件实体内容,其为所述组织文件区中存储的各文件的实体内容。
另外,生成二进制文件时,各个二进制数据块的压缩、加密的选择可以按表5进行设定,当然也可以采用别的设定规则。
表5:
数据块 压缩 加密 文件格式记录区 否 否 组织文件区 否 否 数据区索引表 否 否 数据区内文件映射表 否 否 结构文件区 是 可加密 素材文件区 否 可加密
本发明既兼顾了单一文件便于电子书存储的优点,又充分适应了用户对阅读系统的要求,以文件块为单位独立存储和解析展示,每个文件分块又可以独立进行存储、解析、加密、压缩和DRM,提升了用户的操作体验,使得资源限制差异明显的阅读系统能够提供近似的阅读体验,并且方便了电子书的内容管理活动。
虽然,本发明已通过以上实施例及其附图而清楚说明,然而在不背离本发明精神及其实质的情况下,所属技术领域的技术人员当可根据本发明作出各种相应的变化和修正,但这些相应的变化和修正都应属于本发明的权利要求的保护范围。