海天雷鹰印章海天雷鹰
ARTICLE行业洞察

EPUB 文件其实是一个 zip 包——拆开看看里面有什么

发布日期

  如果你把一个 EPUB 电子书的后缀从 .epub 改成 .zip,然后用解压软件打开,你会发现里面居然是一堆网页文件。没错,EPUB 本质上就是一个打包好的小型网站。这篇文章带你拆开一个 EPUB,看看里面到底有什么,每个文件负责什么,以及做 EPUB 时容易踩哪些坑。


  一、EPUB 的本质:一个打包的微型网站

  EPUB 全称 Electronic Publication,是国际数字出版论坛(IDPF)制定的开放电子书标准。它的核心设计理念是:内容用网页技术描述,然后用 zip 压缩打包。这个设计理念让 EPUB 成为数字出版领域最开放、最灵活的格式之一。

  也就是说,EPUB = HTML(内容)+ CSS(样式)+ 图片等媒体资源 + 一些元数据文件,最后整体压缩成一个 .epub 文件。

  所以 EPUB 和 PDF 完全不一样:

  • PDF 是固定版式文档;
  • EPUB 是可重排的网页文档。

  这种设计让 EPUB 具有极强的开放性和灵活性。它不像 PDF 那样依赖特定厂商的软件,任何支持 HTML 的浏览器或阅读器理论上都能解析 EPUB 内容。这也是 EPUB 能成为主流电子书格式的重要原因。

  EPUB 的发展经历了多个版本。EPUB 2 是早期版本,功能相对简单;EPUB 3 是目前主流版本,支持多媒体、MathML 公式、SVG 图形、固定版式等现代功能;EPUB 3.3 则进一步细化了规范,提升了可访问性和互操作性。


  二、拆开 EPUB 后能看到什么

  用 zip 解压一个 EPUB,通常会看到以下结构:

mybook.epub/
├── mimetype                # 固定声明:application/epub+zip
├── META-INF/
│   └── container.xml       # 指向 OPF 文件位置
└── OEBPS/
    ├── content.opf         # 书籍元数据、章节清单、资源清单
    ├── toc.ncx             # 旧版目录(兼容需要)
    ├── nav.xhtml           # 新版目录导航
    ├── chapter01.xhtml     # 第一章内容
    ├── chapter02.xhtml     # 第二章内容
    ├── style.css           # 样式文件
    └── images/
        ├── cover.jpg
        └── figure01.png

  这就是 EPUB 的内部世界。它不像 PDF 那样是一堆二进制对象,而是一本结构清晰、可拆解重组的小型网站。
05_EPUB_zip_结构


  三、每个文件都做什么

  1. mimetype

  这是一个纯文本文件,只有一行:

application/epub+zip

  它告诉系统和阅读软件:这是一个 EPUB 文件。这个文件必须没有被压缩地放在 zip 包的第一位。如果 mimetype 被压缩了,某些严格的阅读器会报错或无法识别文件。

  2. META-INF/container.xml

  这是 EPUB 的入口文件,告诉阅读器真正的书籍描述文件(OPF)在哪里。

<?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>

  一个 EPUB 包可以包含多本书,所以 container.xml 里用 rootfiles 列出了所有根文件。最常见的情况是只有一本书,对应一个 OPF 文件。

  3. content.opf

  这是 EPUB 的核心描述文件,包含三类信息:

  • metadata:书名、作者、出版社、ISBN、语言、出版日期、权限说明等;
  • manifest:列出所有资源文件(HTML、CSS、图片、字体、音频、视频)并分配唯一 ID;
  • spine:定义章节的阅读顺序,即读者按按钮时依次显示哪些文件。

  metadata 越完整,电子书在图书馆、书店、阅读平台上的可发现性就越好。例如,规范的 ISBN、主题词、摘要信息,能帮助读者更快找到这本书。

  4. toc.ncx / nav.xhtml

  这是目录文件。老版本 EPUB 2 用 toc.ncx,新版本 EPUB 3 用 nav.xhtml。

  toc.ncx 是 XML 格式,结构相对复杂;nav.xhtml 本质是一个普通 XHTML 文件,用 HTML5 的 nav 元素定义目录,更易于阅读和编辑。EPUB 3 通常同时保留两者以兼容旧设备。

  5. xhtml 文件

  每一章内容其实是一个 XHTML 网页文件。阅读器拿到这些文件后,根据屏幕大小和 CSS 样式重新渲染。

  XHTML 和 HTML 很像,但更严格。例如,所有标签必须闭合,属性值必须加引号,嵌套必须正确。不规范的 XHTML 会导致 EPUB 验证失败。

  6. CSS 文件

  控制字体、字号、行距、段间距、图片样式等。好的 CSS 设计能让同一本书在不同设备上都有舒适的阅读体验。

  EPUB 支持的 CSS 属性有一定限制,阅读器不会支持所有网页 CSS 特性。因此做 EPUB 样式时要兼顾兼容性和简洁性。例如,一些复杂的 CSS Grid 布局、Flexbox 高级特性在某些阅读器上可能不被支持,建议优先使用基础的盒模型、浮动、定位等兼容性更好的布局方式。

  7. 媒体资源

  包括封面图片、正文插图、字体文件、音频、视频等。这些资源需要在 content.opf 的 manifest 中注册,并在 XHTML 中正确引用。引用路径通常使用相对路径,例如 images/cover.jpg。如果路径写错一个字母,阅读器就无法加载该资源。


  四、为什么 EPUB 要设计成 zip 包

  这个设计有几个好处:

  1. 开放透明:任何人都能拆开看、修改、学习,不需要专用解密工具;
  2. 自适应屏幕:基于 HTML/CSS,天然支持响应式排版;
  3. 可访问性强:支持字体缩放、朗读、夜间模式、屏幕阅读器等功能;
  4. 易于转换:可以从 EPUB 转出为其他格式,也方便做内容结构化;
  5. 便于分发:zip 压缩后文件体积较小,适合网络传播;
  6. 标准化程度高:IDPF 和 W3C 共同维护规范,跨平台兼容性好;
  7. 便于调试和维护:因为本质是文本文件,出现问题时可以直接解压查看、修改、重新打包,不需要专用解密工具。

  五、EPUB 与其他电子书格式对比

  除了 EPUB,市面上还有 MOBI、AZW、PDF 等常见电子书格式。了解它们的特点,有助于选择合适的格式:

格式特点主要使用场景
EPUB开放标准、流式重排、兼容性好通用电子书、数字出版
MOBI亚马逊早期格式、功能较简单旧款 Kindle 设备
AZW / AZW3亚马逊专有格式、支持更多功能Kindle 电子书商店
PDF固定版式、保留原貌论文、合同、扫描件
TXT纯文本、无版式简单小说、低端设备

  EPUB 的优势在于开放性和灵活性。它不是某一家公司的专有格式,因此被大多数阅读软件和硬件支持。对于出版机构和内容平台来说,做 EPUB 意味着不会被单一平台绑定。


  六、做 EPUB 时容易踩的坑

  1. 资源路径写错

  content.opf 里引用的文件路径必须和实际文件路径一致,否则阅读器找不到图片或章节。路径大小写、相对路径层级都要仔细检查。

  2. mimetype 被压缩

  如果 zip 压缩时把 mimetype 也压缩了,某些阅读器会报错。正确做法是 mimetype 不压缩且放在 zip 包第一位。

  3. 目录文件缺失

  缺少 toc.ncx 或 nav.xhtml,会导致电子书没有目录跳转。EPUB 3 要求至少包含 nav.xhtml。

  4. HTML 不规范

  EPUB 要求内容文件是格式良好的 XHTML,标签不闭合或嵌套错误都会导致解析失败。常见错误包括 img 标签没自闭合、属性缺少引号、特殊字符未转义等。

  5. 元数据不完整

  书名、作者、语言等核心元数据缺失,会影响电子书在平台上的展示和检索。

  6. 图片和字体未嵌入

  如果 XHTML 引用了外部图片或字体,但没有打包进 EPUB,换台设备打开就会显示异常。


  七、企业做 EPUB 的建议

  如果你需要批量制作 EPUB,建议:

  1. 建立标准模板:定义好 content.opf、目录文件、CSS 样式,确保每本书结构一致;
  2. 用脚本自动化生成:特别是目录、元数据、manifest,手动容易出错;
  3. 做多设备测试:在手机、平板、Kindle、微信读书等阅读器上验证显示效果;
  4. 做 EPUB 校验:使用 epubcheck 等工具检查规范符合性,提前发现路径错误、HTML 不规范、元数据缺失等问题;
  5. 管理字体和图片版权:确保使用的字体和图片有合法授权,避免侵权风险;
  6. 找专业团队:如果涉及大量公式、表格、复杂排版,建议交给有经验的数字资源加工团队。

  此外,企业在制作 EPUB 时还应关注可访问性(Accessibility)。这意味着电子书应该能够被视障用户通过屏幕阅读器访问,应该支持字体放大、高对比度模式、语义化标题结构等。EPUB 3 规范本身就强调可访问性,规范的 EPUB 文件更容易通过无障碍认证,也更容易进入图书馆、学校等公共阅读渠道。

  对于出版社和知识服务机构来说,EPUB 不仅是一种电子书格式,更是内容数字化的重要基础。规范的 EPUB 文件可以方便地转成网页、APP 内容、有声书脚本,甚至作为知识图谱的数据来源。

  未来,随着 AI 和大模型技术的发展,EPUB 等结构化电子书格式将发挥更大价值。因为 EPUB 内容本身带有标题、段落、章节、元数据等语义信息,更容易被大模型理解和处理。相比扫描版 PDF,EPUB 更适合做知识提取、智能问答、内容推荐等高级应用。


  关于我们

  本文由 北京海天雷鹰科技有限公司 整理发布。

  公司成立于 2001 年,专注档案整理与数字化、数据标注、知识图谱构建、数字资源加工、试题入库等一站式数据服务 20 余年。持有 ISO 9001 / 14001 / 45001 / 27001 / 20000-1 五体系认证、8 项自主软件著作权、企业信用 AAA 等级,采用三重质检机制(自检→互检→抽检)。

  如果您有 EPUB 制作、数字资源加工或电子书出版方面的需求,欢迎联系我们:


  本文为原创科普内容,如需转载请注明出处。关注我们,持续分享数据服务行业的实战经验与行业洞察。