• zzepub电子书格式简介


    //貌似最好用的制作工具是epubBuilder,个人认为最好的阅读器是Calibre

        epub是国际开放电子图书联盟 (Open eBook Forum , OeBF) 于 1999 年推出了用来表示电子图书的内容、结构的一种开放性规范,旨在统一电子书的格式和提升电子书的相容性。目前 OeBF 已改名为 IDPF (International Digital Publishing Forum)[i] ,版本也已升级到 V2.0[ii] 。(最新已经到V3.0了) OEB 的产生、发展和应用,规范了电子书结构、组织架构及其呈现方式, 为统一电子书格式跨平台使用提供了一种可能。

        目前该格式所涉及的主要标准有三个:

        (1)Open Publication Structure(OPS),该标准制定了开放式电子书的内容结构,由于OPS标准遵循XMLXHTML规范,因此它对跨平台阅读的实现成为一种可能。

        (2)Open Package Format(OPF),即包文件格式,其主要功能是用于组织 OPS 文档和提供相应的导航机制,并形成一个开放式的基于 XML 的打包文档,该文档的后缀名为 “.opf” 。

        (3)Open Container Format(OCF),即电子书容器格式,即建立一个容器,把电子书相关的所有OPS、OPF文档按规范相求置入该容器中,最终形成一个单一的文档——epub文档。

          


    [ii] http://www.idpf.org/2007/ops/OPS_2.0_final_spec.html, Open Publication Structure (OPS) 2.0 v1.0

    http://idpf.org/epub/30/spec/epub30-overview.html


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

        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文件为必需,其它文件可根据电子书的具体情况而定。


    epub格式电子书剖析之三: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>
  • 相关阅读:
    面试十题(4)
    TS中给接口指定的成员?
    TS中定义泛型接口的两种方式
    ts中泛型的使用
    ts中类的属性的封装
    ts中接口的使用
    自定义hook的步骤
    react中如何使用useReducer?
    react中useContext的使用
    react 中useRef的作用
  • 原文地址:https://www.cnblogs.com/Akagi201/p/2447038.html
Copyright © 2020-2023  润新知