EPUB

EPUB（Electronic Publication，电子出版）是一种电子图书标准，由国际数位出版论坛（IDPF）提出；档案的副档名为`.epub`。这个格式已取代了先前的Open eBook开放电子书标准。

EPUB使用XHTML为构建基础，UTF-8或UTF-16编码，分成页面排版固定的“版式”与文字内容可随装置、使用者调整的“自动重新排版”，并可随需求加入数位版权管理（DRM）。目前已发展至3.3版本并广为采用。

## 概览

EPUB是一个自由的开放标准，属于一种可以“自动重新排版”的内容；也就是文字内容可以根据阅读设备的特性，以最适于阅读的方式显示。EPub档案内部使用了XHTML或DTBook（一种由DAISY Consortium提出的XML标准）来展现文字、并以zip压缩格式来包裹档案内容。EPUB格式中包含了数位版权管理（DRM）相关功能可供选用。

EPUB于2007年9月成为国际数位出版论坛（IDPF）的正式标准，以取代旧的开放Open eBook电子书标准。EPub包括三项主要规格：

- 开放出版结构（Open Publication Structure，OPS）2.0，以定义内容的版面。
- 开放包裹格式（Open Packaging Format，OPF）2.0，定义以XML为基础的.epub档案结构。
- OEBPS容纳格式（OEBPS Container Format，OCF）1.0，将所有相关文件收集至ZIP压缩档案之中。

自 2017 年 1 月 30 日起，IDPF 已与W3C合并。

## 文件格式

### 3.1版

EPUB 3.0推荐规范发布于2011年10月11日。2014年6月26日，EPUB 3.0.1发布，作为3.0的小维护更新。2017年1月5日发布EPUB 3.1，对文字的格式规范进行了重组和清理。EPUB 3.0取代了之前的EPUB 2.0.1版。可以从 IDPF网站找到2.0.1到3.0版本的更新内容。

EPUB 3.0由四个规范组成：

- EPUB出版物3.0，其定义了出版物级别的语义以及EPUB出版物的首要一致性要求。
- EPUB内容文档3.0，其定义了用于EPUB出版社中的XHTML、SVG和CSS的配置文件。
- EPUB开放容器格式（OCF）3.0，其定义了将一组相关的资源封装到一个作为EPUB容器的单一文件（ZIP）的文件格式和处理模型。
- EPUB媒体覆盖3.0，其定义了同步文本和音频的格式和处理模型。

EPUB 3.0格式旨在解决下列问题：

- 虽然EPUB能够很好的处理以文本为主的书籍，但其可能不适合那些诸如漫画书的需要精确布局的出版物。虽然这被认为是在解决一个已经解决了的问题，而不是解决悬而未决的问题。
- 阻碍大多数科技出版物使用EPUB的主要问题是其不支持MathML等式格式。现在，其被作为位图或SVG图片被嵌入，不能被屏幕阅读器处理，也不能与计算机代数系统交互。EPUB 3.0规范加入了对MathML的支持。
- 对EPUB规范的其他批评是该规范缺少对链入EPUB书籍、在EPUB书籍之间跳转、在EPUB书籍之内跳转的定义和缺少对注释的定义。对这些链接跳转的阻碍是因为EPUB容器使用的是ZIP文件。此外，目前还不清楚使用EPUB的内部结构标记和直接链接ZIP的文件结构哪个更好。不能以标准方式注释EPUB书籍可能会导致难以共享和转移注释，进而限制了使用EPUB的情景，特别是在教学环境中，其不能提供和网络相媲美的交互性。

### 2.0.1版

EPUB 2.0发布于2007年10月，2010年9月发布的维护更新版本（2.0.1）对该规范进行了澄清和校正。EPUB 2.0.1版有三个规范组成：

- 开放出版结构（OPS）2.0.1，包含其内容的格式。
- 开放包装格式（OPF）2.0.1，使用XML描述`.epub`文件的结构。
- 开放容器格式（OCF）2.0.1，以ZIP文档存档所有文件。

EPUB内部使用XHTML或DTBook（数位无障碍资讯系统联盟提供的一种XML标准）表示文本并组织内容文档，使用CSS的子集提供的布局和格式化。XML用于创建文档清单、目录和EPUB元数据。最后，文件被捆绑在一个zip文件之中作为一个包装格式。

#### 开放出版结构2.0.1

EPUB文件使用XHTML 1.1（或DTBook）构建2.0.1版本书籍的内容。这与之前的版本不同（OEBPS 1.2及更早），其使用的是XHTML的子集。然而，在某些元素上存在限制。EPUB中XHTML文档的互联网媒体类型是application/xhtml+xml。对于所需XHTML模块的列表和限制的描述，可以查看规范的 2.2节。

样式和布局使用CSS 2.0的子集，参考开放出版结构样式表。此规范的语法要求阅读系统仅支持一部分CSS属性，并附加了一些自定义属性。自定义属性包括oeb-page-head、oeb-page-foot和oeb-column-number。可以使用@font-face属性实现嵌入字体，同时在开放包装格式的清单中包含字体文件。EPUB中CSS文档的互联网媒体类型是text/css。对于支持属性的列表和详细的信息，可以查看规范的 3.0节。

EPUB还要求使用互联网媒体类型image/png、image/jpeg、image/gif和image/svg+xml支持PNG、JPEG、GIF和SVG图像。规范同样允许其他媒体类型，但创作者必须使用支持的类型提供替代内容。对于所有需要的互联网媒体类型的列表，可以查看规范的 Section 1.3.7节。

必须使用Unicode，内容必须使用UTF-8或UTF-16编码。这是为了支持国际化和多语种数据。然而，阅读系统不必提供用于显示所有Unicode字符所需的字体，可以使用至少一个占位符显示那些不能完全显示的字符。

EPUB的XHTML文件的结构如下：

```html4strict
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-TW">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
    <title>Pride and Prejudice</title>
    <link rel="stylesheet" href="css/main.css" type="text/css" />
  </head>
  <body>
    ...
  </body>
</html>
```

### 数字版权管理

EPUB文件可以随意的作为附加层包含数字版权管理，但这不是规范所要求的。另外，规范没有指定任何特定的数字版权管理系统，所以出版商可以自由地选择适合的数字版权管理计划。然而，未来版本的EPUB（即OCF）可能会指定数字版权管理的格式。

EPUB规范没有强制或推荐使用特定的数字版权管理计划。这可能会影响设备对不同数字版权管理系统所支持的水平以及购买电子书的便捷性。因此，不同数字版权管理系统之间的不兼容，可能会使EPUB格式按系统分裂，削弱单一标准格式的优势，并令消费者感到困惑。

目前，拥有数字版权管理的EPUB文件必须在其ZIP容器的根级META-INF目录中包含一个名为rights.xml的文件。

### 验证

一个名为epubcheck的开源工具用于对结构化标记（OPS、OPF、OCF）及XHTML和图片文件进行验证并检查错误。该工具可以从命令行运行，也可以在网络应用程序及应用程序中作为库使用。此工具原作中的大部分工作是在Adobe Systems中完成的。

## 软件

### Epub阅读软件

#### Windows

- Microsoft Edge：微软为Edge加入支持打开EPUB的功能，但后来又取消此功能。
- SumatraPDF：Windows平台上一款免费阅读器，支持打开PDF, ePub, MOBI, XPS, DjVu, CHM, CBZ和CBR格式。

#### Linux

- Okular：2005年Google Summer of Code开发的专案、以KPDF为基础、并代替KPDF、KGhostView、KFax、KFaxview、与KDVI，成为KDE 4的文件检视器，支援下述档案： PDF、PostScript、TIFF、CHM、DjVu、DVI、XPS、ODF、FictionBook、Comicbook、Plucker、EPUB、Mobi。

#### macOS、iOS

- Apple Books：Apple的电子书阅读工具，支援书面材质、翻页特效、标注、Spotlight、字典功能，能够透过自家iBooks Store下载电子书。

#### 跨平台

- FBReader：可在Windows、Linux、macOS、iOS、Android，以及多种PDA上使用的开放源代码阅读软件，支援多种档案格式。
- Mobipocket：PC、PDA、电子书设备（Symbian、 Windows Mobile、 Palm OS、 webOS、Java ME、 BlackBerry、 Psion、Kindle and iLiad），Mobipocket于2005年被Amazon收购。
- Google Play图书：用户可以从Google Play购买和下载电子书，该服务提供超过500万本电子书，Google声称它是全球最大的电子书商店。用户还可以向他们的Google Play图书账户云端储存中上传多达1000个PDF或EPUB格式的电子书，并在多个装置之间同步。但不支援上传受到Google Play图书 数字著作权管理（DRM）保护的电子书。
- Firefox，需插件 EPUBReader

### Epub制作软件

- Sigil：跨平台的开源epub电子书编辑器，支持Windows、Linux和Mac系统。
- Google文件：Google提供的网页式办公套件在线服务，在档案->下载->EPUB Publication(.epub)之选项。
- LibreOffice：开放的办公室套装软件，在6.0版中增加“汇出为EPUB”之选项。支援Windows、 Mac 及 Linux。
- calibre：自由、开源、跨平台的电子书软件套装，可以用来组织、存放以及管理电子书。可能在数字版权管理的限制下转换电子书的格式。可以阅读、制作epub以及把epub转换为html、odt、docx。

## 外部链接

- Epub格式建构指南（亦适用于EPUB）
- Adobe公司所提供的 电子书范本图书库
- Infogrid Pacific公司所提供的 电子书范本图书库
- （简体中文）使用EPUB制作数字图书教程

## 基本资料

- 日语原文：Electronic Publication (EPUB)
- 扩展名：`.epub`
- mime：application/epub+zip
- magic：`PK\x03\x04` (Zip)
- 发行日期：2007年
- 最新版本：3.3
- 最新版本：2023年5月25日
- 使用容器：OEBPS Container Format（OCF，ZIP）
- 扩展自：Open eBook、XHTML、CSS、DTBook
- 标准：ISO/IEC TS 30135
- 免费在线档案：是