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的缩写,⽤于表⽰本书的⽬录。
第⼀卷
插图
序章
第⼀章 前世
第⼆章 异世界
第三章 冤罪
第四章 ⼊学王⽴学院