了解EPUB:结构与内容

电子书已经彻底改变了越来越多的人获取阅读内容的方式,让人们可以通过电子阅读器、移动设备和电脑等设备,方便地获取海量的出版物。但是,您是否曾想过是什么技术让这一切成为可能呢?

制作电子书有多种格式,其中最受欢迎的一种是符合标准的EPUB格式。接下来,我们将通过创建一个自己的EPUB电子书,并利用一些现有的HTML页面来丰富内容,来了解EPUB的工作原理。

什么是EPUB?

EPUB®(电子出版)是由国际数字出版论坛IDPF)制定的开放标准,用于创建和分发数字出版物,例如电子书。EPUB的内容具有“自适应布局”特性,这意味着它可以被各种支持该标准的电子阅读器(如Kindle、Sony Reader、Nook、Kobo等)以及大多数智能手机和平板电脑访问。

EPUB文档由OPS(开放出版结构)、OPF(开放打包格式)、OCF(开放容器格式)、XHTML、CSS、SVG、图像以及其他文件类型组成,采用一种统一且可互操作的文件格式,便于轻松分发和发布。

编辑和验证 EPUB 内容

EPUB 文档的组成部分被打包在一个压缩文件中。XMLSpy 包含一个 EPUB 编辑器,用于查看、添加、删除、验证和编辑这些文件和文件夹。XMLSpy 甚至附带一个示例 EPUB 书籍,方便您探索这些功能。接下来,我们将从头创建一个电子书,以便更好地了解每个文档的结构和组成部分。在这个例子中,我们将创建一个食谱书。

首先,从“文件”菜单中选择“新建”,然后点击“EPUB电子出版物”。 接下来,为我们的新电子书输入一个名称并保存它。 保存后,它将在XMLSpy的“存档视图”中打开,以一个基本框架的形式呈现,其中包含了创建有效EPUB文档所需的所有文件和文件夹。

如上所示,每个EPUB文件都具有以下结构和主要组成部分:

|-- Mimetype file (Archive) |-- META-INF folder |             -- container.xml |-- DOCUMENT folder (In the screenshot above, OEBPS is the Document folder.) |             -- contains HTML, CSS, image files, plus OPF and NCX files

OPF 文件,通常命名为 content.opf,包含了电子书的元数据。它基于 开放包装格式 (OPF) 规范。

NCX文件(用于XML的导航控制文件),传统上命名为toc.ncx,包含了电子书的目录。它基于OPF规范中的NCX部分。

名为 META-INF 的文件夹必须包含 container.xml 文件,该文件指向定义书籍内容的 OPF 文件。 container.xml 文件指定了如何根据 开放容器格式 (Open Container Format, OCF) 规范中的规则来组织归档文件。

XMLSpy 提供了针对各种标准文件的上下文相关的输入辅助功能以及实用的编辑指导。现在,让我们双击 "title.html" 文件,开始创建我们的电子书内容。当该文件在 XMLSpy 的 HTML 编辑器中打开时,我们可以立即看到需要首先更新的内容。

让我们根据文件中已有的占位符,添加一些初始内容,同时为欢迎消息添加

标签。

保存这些更改后,我们可以切换回“存档”视图,以便预览到目前为止的EPUB文档内容。点击“预览”按钮会从EPUB存档中的内容生成一个HTML文件,并在XMLSpy的内置浏览器视图中显示该文件。

正如您所看到的,仍然缺少一些必要的信息。让我们双击“content.opf”文件,以添加电子书的元数据。这次我们可以切换到网格视图来输入数据。您可以根据自己的偏好,轻松地在基于文本的编辑方式和图形化编辑方式之间切换。

再次点击“预览”按钮,可以确认我们最初提供的信息是完整的。

在继续操作之前,请先按下F8键,验证EPUB文件,以确保其兼容性。

我们的文件是有效的,我们可以继续将剩余内容添加到 EPUB 档案中,以完成我们的电子书。当出现错误时,XMLSpy 的验证窗口会列出并描述每个错误,并提供指向文件中错误位置的链接,以帮助进行故障排除。

在EPUB格式中,如何重新利用现有内容

如今,读者获取阅读内容的方式多种多样,从电子书到PDF文件,再到网页,因此,提供相同的内容,并通过多种渠道供读者选择,已经成为一项常见的需求。而且,操作越简单,效果越好。

在 XMLSpy 中,很容易将网站上的 HTML 内容重新用于 EPUB 文档。接下来,我们继续之前的例子,将作者的烹饪博客上的一些现有 HTML 页面添加到电子书中,以丰富内容。

我们可以在“存档视图”中,通过点击“添加文档”按钮,然后浏览文件以选择要添加的博客文章。

我们还需要将包含在HTML页面中的图片添加到文件中。由于这些是二进制文件,最好的方法是使用WinZip或WinRAR打开EPUB文档,然后将所需的文件添加到归档文件中。

一旦我们保存了压缩文件,XMLSpy中显示的EPUB文档就会反映出这些更改。

接下来,我们将更新目录文件(toc.ncx),使其指向HTML页面。为此,我们将为每个HTML页面创建一个独立的导航点(NavPoint)和导航标签(NavLabel)...

...并更新 content.opf 文件,将我们的 HTML 页面包含在 EPUB 文档的清单中。

这次,当我们点击“预览”按钮时,我们可以看到我们添加的两篇文章,并且可以分别浏览每一篇文章。

我们的电子书正在逐步完善!

这只是一个非常简单的例子,但它有助于理解EPUB文档的结构,并展示如何在EPUB中轻松地重用现有内容。除了易于使用的“归档视图”之外,XMLSpy还为呈现最复杂的电子书所需的技术提供了智能编辑支持,例如:XMLXHTMLHTMLCSS等。

要查看一个完整的EPUB书籍的结构,可以在XMLSpy Examples项目中打开名为TheCantervilleGhost.epub的文件,或者访问互联网上提供的免费EPUB书籍。一个很好的资源是古腾堡计划 (Project Gutenberg)

如果您尚未成为 XMLSpy 的用户,您可以下载 XMLSpy 的 免费试用版,立即体验其功能。