EPUB文件格式简单解析

  • 格式:pdf
  • 大小:128.52 KB
  • 文档页数:3

EPUB⽂件格式简单解析

最近热衷于看轻⼩说,奈何某些⽹站样式排版属实糟糕,移动端体验极度不友好,实在⽆法忍受,于是希望能将⽹站内容爬取下来制作成EPUB格式的电⼦书。

抛开爬取⽹站内容不谈,通过解析EPUB⽂件后,⼤致掌握了EPUB⽂件的基本格式内容。EPUB⽂件结构

EPUB⽂件本质是⼀个zip压缩⽂件。

将EPUB⽂件后缀改为zip解压即可⼀窥真相。

使⽤tree命令查看整个EPUB⽂件的⽬录结构和⽂件,其中部分⽂件被省略。 mimetype

├─META-INF

│ container.xml

└─OEBPS

│ chapter0001.xhtml

│ chapter0002.xhtml

│ chapter0003.xhtml

│ chapter0004.xhtml

│ chapter0005.xhtml

│ chapter0006.xhtml

| ...

│ content.opf

│ toc.ncx

└─images

39655.jpg

39656.jpg

39657.jpg

...

固有⽂件mimetype

META-INF/container.xml

mimetype

mimetype是⼀个⽂本⽂件,内容固定为:application/epub+zip

META-INF/container.xml

其中rootfile的属性full-path指定了此书的OPF⽂件路径。

OPF

Open Package Format(OPF),即包⽂件格式,其主要功能是⽤于组织 OPS ⽂档和提供相应的导航机制,并形成⼀个开放式的基于 XML 的打包⽂档,该⽂档

的后缀名为 “.opf” 。

通过META-INF/container.xml即可定位到OPF⽂件。

查看⽂件内容,可以⽐较容易猜测每部分的作⽤。

urn:uuid:9bfb698f-dfa3-45ca-bea4-d0fbc2ead4f3

en

第⼀卷 虚伪的王国

...

...

metadata

EPUB⽂件元数据

dc:identifier

书本的唯⼀标识符,需要和ncx⽂件中的identifier⼀致,虽然不⼀致也没问题。dc:language

书本使⽤的语⾔ 不是很重要。dc:title

整本书的书名,重要性不⾔⽽喻。meta

通过对部分EPUB进⾏解压,⽬前只发现设置封⾯的meta

⼀般没有需求不更改,如何设置封⾯查看下⽂。manifest

整本书的清单⽂件,⼀般会列出ncx⽂件和⼩说正⽂⽂件以及封⾯。ncx⽂件是必须的,它定义了书籍的⽬录,具体格式查看下⽂。

封⾯是可选的,不过EPUB没有封⾯和插图就没有灵魂。item

清单⽂件项⽬。href ⽂件的相对路径

id 项⽬ID

media-type ⽂件的MIME类型

正⽂⽹页⽂件

⼀般格式都为XHTML,可以使⽤样式图⽚⾳频各种各样的资源。

指定封⾯图⽚metadata中包含name为cover的meta标签

manifest中包含id为上述meta的content属性的item

通过设置item的href即可指定封⾯路径

spine

翻译成中⽂就是书脊,通过引⽤的顺序来指定阅读顺序。

例如上⽂⽂件依次列出了chapter0001、chapter0002等,阅读完chapter0001就会开始阅读chapter0002。itemref

引⽤的manifest中的⽂件,只需要引⼊正⽂⽹页⽂件。idref 需要与manifest中itme的id对应 代表此⽂件

linear 表明该项是作为线性阅读顺序中的⼀项,与先后顺序⽆关,默认为yes

NCX

NCX是Navigation Content eXtended的缩写,⽤于表⽰本书的⽬录。

第⼀卷

插图

序章

第⼀章 前世

第⼆章 异世界

第三章 冤罪

第四章 ⼊学王⽴学院