epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如winrar、winzip)进行浏览或解压处理。
文件组成
一个未经加密处理的epub电子书由以下三部分组成:
1.mimetype
2.META-INF(文件夹,有一个文件container.xml)
3.OEBPS(文件夹,包含images文件夹、很多xhtml文件、*.css文件和content.opf文件)
1.文件mimetype
每一个epub电子书均包含一个名为mimtype的文件,且内容不变,用以说明epub的文件格式。文件内容为:
2.目录:META-INF
META-INF用于存放容器信息,默认情况下该目录包含一个文件,即container.xml,文件内容如下:
container.xml文件的主要功能用于告诉阅读器,电子书的根文件(rootfile)的路径和打开格式,一般来说,该container.xml文件也不需要任何修改,除非改变了根文件的路径和文件名称。除了container.xml文件之外,OCF还规定了以下几个文件:
manifest.xml 文件列表
metadata.xml 元数据
signatures.xml 数字签名
encryption.xml 加密
rights.xml 权限管理
这些目录是可选的
3. 目录:OEBPS
OEPBS目录用于存放OPF文档、CSS文件、NCX文档。
OPF文件(★)
OPF文档是epub的核心文件,且是一个标准的xml文件,依据OPF规范,此文件的根元素为<package>
其内容主要由五部分组成:
1.<metadata>
元数据信息,此信息是书籍的出版信息,由两个子元素组成。
(1)<dc-metadata>,其元素构成采用dubline core(DC)的15项核心元素,包括:
(2)<x-metada>
扩展元素。如果有些信息在上述元素中无法描述,则在此元素中进行扩展。
例如:
2.<mainfest>
文件列表,列出书籍出版的所有文件,但是不包括:mimetype、container.xml、content.opf,由一个子元素构成
其中
id:文件的id号
href:文件的相对路径
media-type:文件的媒体类型
例如:
3.<spine toc="ncx">
脊骨,其主要功能是提供书籍的线性阅读次序。由一个子元素构成:
其中
idref:
即参照manifest列出的id
例如:
4.<guide>
指南,一次列出电子书的特定页面,例如封面、目录、序言等,属性值指向文件保存地址。一般情况下,epub电子书可以不用该元素。
例如:
5.<tour>
导读,可以根据不同的读者水平或阅读目的,按一定的次序,选择电子书中的部分页面组成导读。一般情况下,epub电子书可以不用该元素。
NCX文件(★)
NCX文件是epub电子书的又一个核心文件,用于制作电子书的目录,其文件的命名通常为toc.ncx。ncx文件也是一个xml文件。
ncx
代表“Navigation Center eXtended”,意思大致就是导航文件,这个文件与目录有直接的关系。
.ncx文件中最主要的节点是navMap。navMap节点是由许多navPoint节点组成的。而navPoint节点则是由navLabel、content两个子节点组成。
(1) navPoint节点中,playOrder属性定义当前项在目录中显示的次序。navLabel子节点中的text节点定义了每个目录的名字。
(2) content子节点的src属性定义了对应每个章节的文件的具体位置。
nvaPoint节点可以嵌套,就是书籍的目录是层级目录。
下面是一个toc.ncx文件的实例。