电子书文件是如何制作和阅读的?

1. .epub 文件 = .zip 文件

是的,没错。我们所知的电子书文件扩展名 .epub,实际上与包含多个文件的压缩包 .zip 文件是一样的!不过,通过单独指定名称为 .epub,当用户点击打开文件时,它就会告诉计算机:“嗨,我是一个电子书文件,请用能够阅读电子书文件的应用程序来运行我。”

2. .epub 文件中包含的内容

由于 .epub 文件本质上也是压缩文件,所以只要把名字改成 .zip,然后直接解压缩,就能看到里面的多个文件。(在 Mac 上,您可以在文件所在的文件夹中打开终端,输入 unzip [电子书名称].epub -d [保存文件夹名称] 进行解压。)如果您用这种方法解压任何一个电子书文件,它的内部结构通常如下所示:

a) mimetype

这是一个纯文本文件,内容如下:

application/epub+zip

它起着身份证的作用,用于确认:“我确实是 .epub 文件。”这个文件绝对不能修改。

b) META-INF

它告诉电子书阅读器 container.xml 和 content.opf 的位置。这个名为 “META-INF” 的文件夹名称和 “container.xml” 的文件名称也不能随意更改。只有它们存在,电子书阅读应用才能正确读取图书信息。

c) 包含内容的文件夹

(结构可以自由组织,但必须在 container.xml 中准确记录其组织信息。)

  • content.opf: 关于这个电子书文件的详细信息。它以 XML 语言编写,代表着电子书文件的蓝图(包括书名、作者、语言、唯一编号,以及实际包含的文件列表、文件位置、正文显示顺序等)。
  • 目录(根据 ePub 版本不同,可能是 toc.ncx 或 nav.xhtml): 包含书的标题,以及点击标题即可跳转到相应章节的链接。
  • 内容(chapter.xhtml): 书的内容是利用 xhtml 语法中的标签编写的。
    示例:<p> 他 <b>这样</b> 说道。 </p>
  • 样式(style.css): 这是规定某个标签将以何种样式(颜色、大小等)显示的规则。
    示例:“把 <p> 标签显示为 11px 大小、灰色!”
  • images: book_cover.jpg — 电子书文件的封面图片,在 content.opf 中记录为:“该文件夹中名为该名称的图片就是电子书文件的封面。”

3. 电子书文件是如何被阅读的?

到目前为止的内容是不是比想象中简单?实际上,“电子书文件”可以看作是一个“迷你网站”。用于创建网站的技术几乎原封不动地用于电子书文件。如果电子书文件是一个网站,那么“电子书阅读应用 (eBook Reader App)”就可以看作是 Chrome、Safari、Edge 等浏览器。只不过它是离线专用的。当我们“下载电子书文件”时,我们需要网络连接来从书店的服务器获取文件。但是,一旦该文件存储在我们的设备上,就可以利用预装的电子书阅读应用,在没有网络连接的情况下解析文件的内容并显示在屏幕上。

实际上,如果您不是想要直接用代码创建这些过程的人,那么只需使用 Adobe InDesign 或其他各种电子书编辑工具编写内容并导出,就可以轻松获得电子书格式的文件。当然,如果您想进行一些不常见的操作,或者想亲眼确认有问题的文件是哪里出了问题,那么了解电子书文件的结构会很有帮助。

以上就是关于电子书文件是如何制作和阅读的说明。


© 韩善 | Bug Loop