简介
EPUB是电子书格式,其内容由XHTML文件构成,排版样式由CSS指定。
Hello, EPUB
首先,不讲任何理论,直接动手做一个epub文件,其内容为“Hello, EPUB”。
-
XHTML文件
创建hello.xhtml,内容如下:
<?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"> <head> <title>Hello EPUB</title> </head> <body> Hello, EPUB! </body> </html>
接着只要将其封装为EPUB格式,就能在EPUB阅读器上看啦。
-
封装EPUB
创建文件夹book,其结构如下:
book/ +---mimetype % 类型说明文件,告诉阅读器这是一个EPUB书;照搬即可 | +---META-INF/ % 用于告诉阅读器content.opf在哪;照搬即可 | +---container.xml | +---OEBPS/ % 电子书的元数据、内容、资源等的所在地 +---content.opf % 元数据和资源的清单,按需编辑 +---toc.ncx % 目录,按需编辑 +---hello.xhtml % 书的内容,按需编辑
mimetype
mimetype是类型说明文件,告诉阅读器这是一个EPUB书,其内容如下:
application/epub+zip
mimetype在所有EPUB书中都一样,照搬即可。
META-INF/container.xml
container.xml用于告诉阅读器opf文件(资源清单文件,通常是content.opf)在哪,其内容如下:
<?xml version="1.0"?> <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>
container.xml在所有EPUB中都一样,照搬即可。
OEBPS/content.opf
content.opf是电子书的元数据和资源的汇总清单,其内容如下:
<?xml version="1.0" encoding="UTF-8"?> <package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookID" version="2.0"> <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf"> <dc:title>我的第一本书</dc:title> <dc:creator opf:role="aut">lithdo</dc:creator> <dc:publisher>lithdo.github.io</dc:publisher> <dc:identifier id="BookID" opf:scheme="UUID">015ffaec-9340-42f8-b163-a0c5ab7d0611</dc:identifier> </metadata> <manifest> <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/> <item id="hello" href="hello.xhtml" media-type="application/xhtml+xml"/> </manifest> <spine toc="ncx"> <itemref idref="hello"/> </spine> </package>
OEBPS/toc.ncx
toc.ncx是目录,阅读器根据它来显示目录栏,其内容入下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"> <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1"> <head> <meta name="dtb:uid" content="015ffaec-9340-42f8-b163-a0c5ab7d0611"/> </head> <docTitle> <text>我的第一本书</text> </docTitle> <navMap> <navPoint id="navPoint-1" playOrder="1"> <navLabel><text>Hello, EPUB</text></navLabel> <content src="hello.xhtml"/> </navPoint> </navMap> </ncx>
创建book.zip压缩包,依次将mimetype、META-INF和OEBPS放入压缩包内。注意:mimetype必须第一个放入压缩包。
现在所有的工作完成了,只需将book.zip改名为book.epub,就可以用epub阅读器浏览啦。