【Epub入门】Epub各文件的用途及含义

KuaiKan 2018-10-14 1865

Epub文件的组成

图1:Epub文件组成

下面来分别讲一讲这三个组成部分:

①  mimetype

  任何一本epub电子书都有一个mimetype文件,且内容是不变的(下面会讲到它是什么内容),这个文件是用来声明epub电子书的文件格式,是告诉阅读系统,压缩的内容是EPub电子出版物。如果你是用文本编辑器(Windows自带的记事本)制作电子书,那么该文件需要去手动创建,请注意该文件是没有扩展名的,如果是用制书软件(Sigil、ePUBee智多星、Wand豌豆等)制作电子书,在创建电子书的时候软件会自动生成而无需自己手动创建。

  mimetype文件用记事本程序打开,内容为:

application/epub+zip

  要注意,mimetype 文件不能包含新行或者回车

  此外,mimetype 文件必须作为 ZIP 档案中的第一个文件,而且自身不能压缩

②  META-INF文件夹

  META-INF用于说明特定文件的存放信息,默认情况下就是用来说核心文件OPF的存放地址,当然根据epub电子书的制作不同,还可能包含数字签名和加密信息等文件(就像掌阅的书籍),不过这些不是必须的,只有container.xml文件是一定有的,因为任何epub阅读系统首先需要寻找这个文件,它等于是电子书阅读器的指路牌。

  该文件作用是将阅读系统引导至出版物的包文件——content.opf。每个EPub电子出版物都有一个单一的包文件,它指定构成出版物的所有内容文件及其所需的资源、为用户定义阅读顺序,并且关联元数据以及导航信息。

  同mimetype一样,可以用文本编辑器手动创建,或由制书软件自动生成。

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

文字OEBPS/content.opf部分,就是电子书阅读器的“指路牌”了。

③  OEBPS 文件夹

  OEBPS文件夹下有包文件、导航文件以及图书资源(网页、图像、字体、样式表、多媒体文件)等。其中content.opf文件和toc.ncx文件为必需,其它文件可根据电子书的具体情况而定。

  OEBPS 文件夹中包含的文件可能会较多,这里重点介绍核心.opf文件

content.opf实例(部分)
<?xml version="1.0" encoding="utf-8"?>
<package version="2.0" unique-identifier="BookId" xmlns="http://www.idpf.org/2007/opf">
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
    <dc:identifier>978-7-5470-0865-2</dc:identifier>
    <dc:title>刘备不是传说</dc:title>
    <dc:creator>剑眉枉凝</dc:creator>
    <dc:language>zh</dc:language>
    <meta name="Sigil version" content="0.9.9" />
    <dc:date opf:event="modification" xmlns:opf="http://www.idpf.org/2007/opf">2018-02-25</dc:date>
    <dc:identifier opf:scheme="UUID" id="BookId">urn:uuid:8206bd5c-7d4c-4317-8f0a-2b8cbac49791</dc:identifier>
  </metadata>
  <manifest>
    <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
    <item id="cover.xhtml" href="Text/cover.xhtml" media-type="application/xhtml+xml"/>
    <item id="cover.jpg" href="Images/cover.jpg" media-type="image/jpeg"/>
    <item id="Section0001.xhtml" href="Text/Section0001.xhtml" media-type="application/xhtml+xml"/>
    <item id="Section0114.xhtml" href="Text/Section0114.xhtml" media-type="application/xhtml+xml"/>
    <item id="Style0001.css" href="Styles/Style0001.css" media-type="text/css"/>
    <item id="biaoti.png" href="Images/biaoti.png" media-type="image/png"/>
    <item id="xiaoyu.png" href="Images/xiaoyu.png" media-type="image/png"/>
    <item id="copyright.xhtml" href="Text/copyright.xhtml" media-type="application/xhtml+xml"/>
    <item id="tno6.png" href="Images/tno6.png" media-type="image/png"/>
    <item id="tno7.png" href="Images/tno7.png" media-type="image/png"/>
    <item id="note.png" href="Images/note.png" media-type="image/png"/>
  </manifest>
  <spine toc="ncx">
    <itemref idref="cover.xhtml"/>
    <itemref idref="copyright.xhtml"/>
    <itemref idref="Section0001.xhtml"/>
    <itemref idref="Section0002.xhtml"/>
  </spine>
  <guide>
  </guide>
</package>

  别看这些代码很复杂,只要知道这四组标签,就算摸着门路了:

<metadata></metadata>之间为本书的元数据,包含书名、语言、版权、作者、出版者、出版物唯一标识码等等信息;

<manifest></manifest>之间为该epub电子书的所有元素,意思是这本epub电子书中包含哪些文字章节、图片、样式表,这些元素都是以HTML文件或者CSS文件存在的;

<spine></spine>之间为epub电子书的读取顺序,就是书籍的页码的呈现顺序。

<guide></guide>之间列出电子书的特定页面, 例如封面、目录、序言等,属性值指向文件保存地址。一般情况下,epub电子书中的该元素对你阅读无影响。epub电子书可以不用该元素。

  如果你学过HTML,搞过前端开发,上面的代码是不是很熟悉?不错,其实,epub格式的电子书就是几个html文件的压缩包,里面的内容从封面、目录到正文内容都是由html文件来承载的,制作精良的电子书还有CSS控制样式的,所以对于有前端知识基础的人来说,制作epub电子书和制作静态网页没有什么区别。

<metadata>元素的几种属性:

  ●language:语种,可以根据图书的语言自己修改;
  ●title:电子书的标题,一般指书名

  ●author:电子书的作者; 
  ●date:事件日期,可以设置三个内容。creation(制作日期,制作该电子书的日期)、modification(软件会自己记录最新的修改日期)、publication(出版日期,纸质出版物的出版日期);
  ●identifier:识别符,在Sigil中创建一个EPub文件时,会自动生成一个识别符——UUID;也可以再增加一个ISBN属性用来记录纸质书的国际标准书号,如果有的话。

  ●subject:主题词或关键词;
  ●description:电子书的内容介绍;
  ●contributor:贡献者或其它次要责任者;
  ●source:图书资源或素材的来源;
  ●rights:版权描述;

以上信息可以直接在Sigil的“元数据编辑器”中直接添加。

签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回