epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如winrar、winzip)进行浏览或解压处理。一个未经加密处理的epub电子书以三个部分组成,其文件结构如下图所示:

1、文件:mimetype

每一本epub电子书均包含一个名为mimetype的文件,且内容不变,用以说明epub的文件格式。文件内容如下:

 application/epub+zip  //注释,表示可以用epub工具和ZIP工具打开

2、目录:META-INF

依据OCF规范,META-INF用于存放容器信息,默认情况下(即加密处理),该目录包含一个文件,即container.xml,文件内容如下:

 <?xml version='1.0' encoding='utf-8'?>
<container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
 <rootfiles>
  <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml" />
 </rootfiles>
</container>

container.xml的主要功能用于告诉阅读器,电子书的根文件(rootfile)的路径(红色部分)和打开放式,一般来讲,该container.xml文件也不需要作任何修改,除非你改变了根文件的路径和文件名称。

除container.xml文件之外,OCF还规定了以下几个文件:

(1)[manifest.xml],文件列表
   (2)[metadata.xml],元数据
   (3)[signatures.xml],数字签名
   (4)[encryption.xml],加密
   (5)[rights.xml],权限管理
   对于epub电子书而言,这些文件都是可选的。

3、目录:OEBPS

OEBPS目录用于存放OPS文档、OPF文档、CSS文档、NCX文档,如果是制作中文电子书,则还包括ttf文档(即字体文档),OEBPS目录也可以建立相应的子目录,例如建立chapter目录,把各章节的OPS文档放在chapter目录之中。下图一本epub电子书OEBPS文档的实例图:

其中content.opf文件和toc.ncx文件为必需,其它文件可根据电子书的具体情况而定。

OPF文件构成:

OPF文档是epub电子书的核心文件,且是一个标准的XML文件,依据OPF规范,主要由五个部分组成:

1、<metadata>,元数据信息,由两个子元素组成:

  • <dc-metadata>,其元素构成采用dubline core(DC)的15项核心元素,包括:
    • <title>:题名
    • <creator>:责任者
    • <subject>:主题词或关键词
    • <description>:内容描述
    • <contributor>:贡献者或其它次要责任者
    • <date>:日期
    • <type>:类型
    • <format>:格式
    • <identifier>:标识符
    • <source>:来源
    • <language>:语种
    • <relation>:相关信息
    • <coverage>:履盖范围
    • <rights>:权限描述
  • <x-metadata>,即扩展元素。如果有些信息在上述元素中无法描述,则在此元素中进行扩展。

2、<menifest>,文件列表,由于列出OEBPS文档及相关的文档,有一个子元素构成,

  • <item id="" href="" media-type="">,该元素由三个属性构成:
    • id:表示文件的ID号
    • href:文件的相对路径
    • media-type:文件的媒体类型
    • 例如:<item id="chap01" href="chap01.xhtml" media-type="application/xhtml+xml"/>

3、<spine toc="ncx">,脊骨,其主要功能是提供书籍的线性阅读次序。由一个子元素构成:

  • <itemref idref="">,由一个属性构成:
    • idref:即参照menifest列出的ID
    • 例如:<itemref idref="chap01"/>

4、<guide>,指南,依次列出电子书的特定页面, 例如封面、目录、序言等, 属性值指向文件保存地址。一般情况下,epub电子书可以不用该元素。

5、<tour>,导读。可以根据不同的读者水平或者阅读目的, 按一定次序, 选择电子书中的部分页面组成导读。一般情况下,epub电子书可以不用该元素。

content.opf实例:

 <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE package PUBLIC "+//ISBN 978-7-308-05831-5//DTD OEB 1.2 Package//EN" "http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd">
<package unique-identifier="bookid" xmlns:opf="http://www.idpf.org/2007/opf" xmlns="http://www.idpf.org/2007/opf" version="2.0">
 <metadata>
  <dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <dc:title>数字档案馆理论与技术研究</dc:title>
   <dc:creator>金更达</dc:creator>
   <dc:subject>数字档案馆</dc:subject>
   <dc:subject>电子文件管理</dc:subject>
   <dc:subject>元数据</dc:subject>
   <dc:subject>数字化</dc:subject>
   <dc:subject>档案化</dc:subject>
   <dc:description>当……<dc:description>
   <dc:publisher>机械工业出版社</dc:publisher>
   <dc:contributor/>
   <dc:date>2007-09</dc:date>
   <dc:type>普通图书</dc:type>
   <dc:format>Text/html(.html,.htm)</dc:format>
   <dc:identifier id="bookid" opf:scheme="ISBN">isbn:978-7-111-04961-6</dc:identifier>
   <dc:source/>
   <dc:language>chi</dc:language>
   <dc:relation/>
   <dc:coverage/>
   <dc:rights>机械工业出版社版权所有</dc:rights>
  </dc-metadata>
  <x-metadata/>
 </metadata>
 <manifest>
  <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
  <item id="style" href="style.css" media-type="text/css"/>
  <item id="cover" href="cover.htm" media-type="text/html"/>
  <item id="tableofc" href="toc.xhtml" media-type="application/xhtml+xml"/>
  <item id="forword" href="forword.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap01" href="chap01.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap02" href="chap02.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap03" href="chap03.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap04" href="chap04.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap05" href="chap05.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap06" href="chap06.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap07" href="chap07.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap08" href="chap08.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap09" href="chap09.xhtml" media-type="application/xhtml+xml"/>
  <item id="chap10" href="chap10.xhtml" media-type="application/xhtml+xml"/>
  <item id="reference" href="reference.xhtml" media-type="application/xhtml+xml"/>
 </manifest>
 <spine toc="ncx">
  <itemref idref="cover"/>
  <itemref idref="tableofc"/>
  <itemref idref="forword"/>
  <itemref idref="chap01"/>
  <itemref idref="chap02"/>
  <itemref idref="chap03"/>
  <itemref idref="chap04"/>
  <itemref idref="chap05"/>
  <itemref idref="chap06"/>
  <itemref idref="chap07"/>
  <itemref idref="chap08"/>
  <itemref idref="chap09"/>
  <itemref idref="chap10"/>
  <itemref idref="reference"/>
 </spine>
 <guide/>
</package>

NCX文件构成:

ncx文件是epub电子书的又一个核心文件,用于制作电子书的目录,其文件的命名通常为toc.ncx。

ncx文件是一个XML文件,该标准由DAISY Consortium发布(参见http://www.daisy.org)。

下列是一个toc.ncx文件的实例,其中红色部分为必需。<navMap>元素列出了目录的名称和链接地址。其子元素<navPoint>支持嵌套。

 <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
<ncx version="2005-1" xmlns="http://www.daisy.org/z3986/2005/ncx/">
 <head>
  <!-- The following four metadata items are required for all NCX documents, including those conforming to the relaxed constraints of OPS 2.0 -->
  <meta name="dtb:uid" content=" "/>
  <meta name="dtb:depth" content="-1"/>
  <meta name="dtb:totalPageCount" content="0"/>
  <meta name="dtb:maxPageNumber" content="0"/>
 </head>
 <docTitle>
  <text>数字档案馆理论与技术研究</text>
 </docTitle>
 <docAuthor>
  <text>金更达</text>
 </docAuthor>
 <navMap>
  <navPoint id="navpoint-1" playOrder="1">
   <navLabel>
    <text>封面</text>
   </navLabel>
   <content src="cover.htm"/>
  </navPoint>
  <navPoint id="navpoint-2" playOrder="2">
   <navLabel>
    <text>序</text>
   </navLabel>
   <content src="forword.xhtml"/>
  </navPoint>
  <navPoint id="navpoint-3" playOrder="3">
   <navLabel>
    <text>目录</text>
   </navLabel>
   <content src="toc.xhtml"/>
  </navPoint>
  <navPoint id="navpoint-4" playOrder="4">
   <navLabel>
    <text>第一章 绪论</text>
   </navLabel>
   <content src="chap01.xhtml"/>
   <navPoint id="navpoint-5" playOrder="5">
    <navLabel>
     <text>第一节 数字档案馆:新世纪档案事业的发展方向</text>
    </navLabel>
    <content src="chap01.xhtml#_Toc169344163"/>
   </navPoint>
   <navPoint id="navpoint-6" playOrder="6">
    <navLabel>
     <text>第二节 数字档案馆:新世纪档案工作的严峻挑战</text>
    </navLabel>
    <content src="chap01.xhtml#_Toc169344164"/>
   </navPoint>
   <navPoint id="navpoint-7" playOrder="7">
    <navLabel>
     <text>第三节 数字档案馆系统研究的理论价值与现实意义</text>
    </navLabel>
    <content src="chap01.xhtml#_Toc169344165"/>
   </navPoint>
  </navPoint>
 </navMap>
</ncx>

epub格式电子书剖析相关推荐

  1. epub格式电子书剖析之二:OP…

    原文地址:epub格式电子书剖析之二:OPF文件构成作者:数字出版初涉 OPF文档是epub电子书的核心文件,且是一个标准的XML文件,依据OPF规范,主要由五个部分组成: 1.<metadat ...

  2. epub格式电子书剖析之三:NC…

    原文地址:epub格式电子书剖析之三:NCX文件构成作者:数字出版初涉 ncx文件是epub电子书的又一个核心文件,用于制作电子书的目录,其文件的命名通常为toc.ncx. ncx文件是一个XML文件 ...

  3. epub格式电子书剖析之一:文…

    原文地址:epub格式电子书剖析之一:文档构成 作者:数字出版初涉 epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub ...

  4. epub格式电子书剖析之一:文档构成

    epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如 ...

  5. epub格式电子书剖析 .

    epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如 ...

  6. epub格式电子书剖析之二:OPF文件构成

    OPF文档是epub电子书的核心文件,且是一个标准的XML文件,依据OPF规范,主要由五个部分组成: 1.<metadata>,元数据信息,由两个子元素组成: <dc-metadat ...

  7. epub格式电子书剖析之三:NCX文件构成

    ncx文件是epub电子书的又一个核心文件,用于制作电子书的目录,其文件的命名通常为toc.ncx. ncx文件是一个XML文件,该标准由DAISY Consortium发布(参见http://www ...

  8. epub格式电子书制作工具——ep…

    原文地址:epub格式电子书制作工具--epubmaker(测试版)作者:金更达 这是本人根据国际数字出版论坛(IDPF,http://www.idpf.org)推出的epub电子书规范开发的一款ep ...

  9. 如何在手机上打开epub格式电子书

    Epub是一种当下比较流行的的电子书格式,但是它不像之前比较常见的pdf和txt格式能手机上直接打开.想要在手机上打开epub格式文件,比较方便的解决方法就是安装一款支持打开epub格式的阅读器.工欲 ...

最新文章

  1. TMG标准版轻松升级到企业版---TMG 2010 系列之四
  2. 【Flutter】Flutter Gallery 官方示例简介 ( 项目简介 | 工程构建 )
  3. wxWidgets:调试
  4. laravel中的form表单提交
  5. 160-PHP 文本替换函数str_replace(一)
  6. Android Activity之间传递类对象
  7. gddr6速率_Rambus展示18GT/s的GDDR6内存子系统:高频信号纯净度仍然非常好
  8. 基于短文本的食源性疾病事件探测技术
  9. 记一次MySQL数据库恢复(附方案)
  10. javascript函数参数的传递问题
  11. C++公有、私有、保护继承的关系
  12. vue 项目路由配置
  13. c语言中strncpy的用法,C语言中函数strcpy ,strncpy ,strlcpy的用法【转】
  14. 华硕xhci灰色_[安装实录] 零基础完美黑苹果安装之华硕篇
  15. java公寓报修管理系统,基于jsp的公寓报修管理系统-JavaEE实现公寓报修管理系统 - java项目源码...
  16. vue框架对接手机app
  17. CentOS 基础知识与命令总结
  18. 开源!!!100 多个常用 API 数据接口免费分享!建议收藏!
  19. 【主动投资组合管理】第1章 绪论
  20. Soul-入门,安装部署单机版

热门文章

  1. python爬虫 豆瓣影评的爬取cookies实现自动登录账号
  2. 硬盘存储双寡头之争 希捷重注中国市场或赢大丰收
  3. 使用vscode开发vue项目
  4. 计算机专业考研青岛,青岛大学(专业学位)计算机技术考研难吗
  5. Android调查问卷的创建与提交
  6. 学习笔记|自动驾驶仿真工具-SCANeR studio
  7. 一级建造师考试备考顺序
  8. 2022年京东618红包开抢时间介绍和怎么抢红包攻略
  9. kubernetes—ConfigMap 与 Secret
  10. 冒志鸿:大公司不模仿你,说明你危险了