基本知识:
EPUB 是一种基于 XML 的、对开发者友好的格式,正逐渐成为数字图书的标准,目前,大多数用于出版社。
本教程分成三个部分:
第一部分是讲解epub电子书的文件组成,以及epub电子书每个文件的具体内容;
第二部分是电子书制作步骤;
EPUB 电子书的文件组成
EPUB格式的电子书就是几个html文件的压缩包,里面的内容从封面、目录到正文内容都是由html文件来承载的,制作精良的电子书还有CSS控制样式。
EPUB 电子书本身就是一个ZIP文件,如果将EPUB 格式电子书的扩展名EPUB 改成zip后,可以通过解压缩软件解压。解压后,如下图所示
第一种
第二种
① mimetype
任何一本epub电子书都有一个mimetype文件,且内容是不变的(下面会讲到它是什么内容),这个文件是用来声明epub电子书的文件格式。
② META-INF文件夹
META-INF用于说明特定文件的存放信息,默认情况下就是用来说核心文件OPF的存放地址,当然根据epub电子书的制作不同,还可能包含数字签名和加密信息等文件,不过这些不是必须的,只有container.xml文件是一定有的,因为任何epub阅读系统首先需要寻找这个文件,它等于是电子书阅读器的指路牌。
③ OEBPS 文件夹
第二种有OEBPS文件夹,第一种没有,其实一样都是用来存放OPF文档、CSS文档、NCX文档,图片文件,其中content.opf文件和toc.ncx文件为必需,其它文件可根据电子书的具体情况而定。
container.xml就相当于android的manifest ,通过该文件找到.opf文件
接下来,我来重点看下.opf这个核心文件
<metadata></metadata>之间为本书的元数据,包含书名、语言、版权、作者、出版者、出版物唯一标识码等等信息;
<manifest></manifest>之间为该epub电子书的所有元素,意思是这本epub电子书中包含哪些文字章节、图片、样式表,这些元素都是以HTML文件或者CSS文件存在的;
<spine></spine>之间为epub电子书的读取顺序,就是书籍的页码的呈现顺序。
可能有些同学有这个标签<guide></guide>之间会列出电子书的特定页面, 例如封面、目录、序言等,一般情况下,epub电子书中的该元素对你阅读无影响。
第二部分:让我们一起来制作电子书吧!
准备工具:
1:记事本或Editplus等纯文本编辑工具
2:压缩工具(WinRAR,7zip,WinZip等)
第一步:创建mimetype文件
首先我们创建一个文件夹,可以叫“我的电子书”,在该文件夹中新建一个名为mimetype 的文本文档,粘贴“application/epub+zip”到文档中,保存,然后将该文档扩展名删除,这样我们得到mimetype文件或者是直接找一本epub电子书解压复制其mimetype文件,大多数该文件通用。
第二步:创建META-INF文件夹并在该文件夹下创建container.xml文件
在“我的电子书”文件夹中再新建一文件夹,重命名为META-INF,打开该文件夹,新建一个名为container.xml 的文本文档,然后用记事本打开,贴入以下代码:
<?xml version="1.0"?>
<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、toc.ncx等
在“我制作的电子书”文件夹中新建文件夹,命名为OEBPS,在新建二个文本文档,分别重命名为content.opf和toc.ncx;
然后把书中需要的图片都拷贝到OEBPS文件夹中;
把书中文字建立成一个或多个网页文件(htm、html、xhtml甚至xml,推荐xhtml),放进OEBPS文件夹中;
用记事本打开content.opf,贴入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookID" version="2.0">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
<dc:title>书名</dc:title>
<dc:language>语言</dc:language>
<dc:rights>版权</dc:rights>
<dc:creator opf:role="aut">作者</dc:creator>
<dc:publisher>出版者</dc:publisher>
<dc:identifier id="BookID" opf:scheme="UUID">出版物唯一标识码</dc:identifier>
</metadata>
<manifest>
<item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
<item id="sample.png" href="sample.png" media-type="image/png"/>
<item id="page-template.xpgt" href="Styles/page-template.xpgt" media-type="application/vnd.adobe-page-template+xml"/>
<item id="chap01.xhtml" href=" 01.xhtml" media-type="application/xhtml+xml"/>
<item id="chap02.xhtml" href=" 02.xhtml" media-type="application/xhtml+xml"/>
<item id="title_page.xhtml" href="Text/title_page.xhtml" media-type="application/xhtml+xml"/>
</manifest>
<spine toc="ncx">
<itemref idref="title_page.xhtml"/>
<itemref idref="01.xhtml"/>
<itemref idref="02.xhtml"/>
</spine>
</package>