
EPUB 文件是使用开放格式发布内容的好方法。
电子书提供了一种随时随地阅读书籍、杂志和其他内容的好方法。读者可以在长途飞行和乘坐火车时享受电子书打发时间。最流行的电子书文件格式是 EPUB 文件,它是“ 电子出版物 electronic publication ”的缩写。 EPUB 文件受到各种电子阅读器的支持,并且是当今电子书出版的有效标准。
EPUB 文件格式基于 XHTML 内容和 XML 元数据的开放标准,包含在 zip 存档中。由于一切都基于开放标准,我们可以使用通用工具来创建或检查 EPUB 文件。让我们探索一个 EPUB 文件以了解更多信息。《C 编程技巧和窍门指南》,于今年早些时候在 Opensource.com 上发布,提供 PDF 或 EPUB 格式。
因为 EPUB 文件是放在 zip 文件中的 XHTML 内容和 XML 元数据,所以你可以用
unzip命令在命令行检查 EPUB:$ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub Archive: osdc_Jim-Hall_C-Programming-Tips.epub Length Date Time Name --------- ---------- ----- ---- 20 06-23-2022 00:20 mimetype 8259 06-23-2022 00:20 OEBPS/styles/stylesheet.css 1659 06-23-2022 00:20 OEBPS/toc.xhtml 4460 06-23-2022 00:20 OEBPS/content.opf 44157 06-23-2022 00:20 OEBPS/sections/section0018.xhtml 1242 06-23-2022 00:20 OEBPS/sections/section0002.xhtml 22429 06-23-2022 00:20 OEBPS/sections/section0008.xhtml [...] 9628 06-23-2022 00:20 OEBPS/sections/section0016.xhtml 748 06-23-2022 00:20 OEBPS/sections/section0001.xhtml 3370 06-23-2022 00:20 OEBPS/toc.ncx 8308 06-23-2022 00:21 OEBPS/images/image0011.png 6598 06-23-2022 00:21 OEBPS/images/image0009.png [...] 14492 06-23-2022 00:21 OEBPS/images/image0005.png 239 06-23-2022 00:20 META-INF/container.xml --------- ------- 959201 41 files这个 EPUB 包含很多文件,但其中大部分是内容。要了解 EPUB 文件是如何组合在一起的,请遵循电子书阅读器的流程:
1、电子书阅读器需要验证 EPUB 文件是否真的是 EPUB 文件。他们通过检查 EPUB 存档根目录中的
mimetype文件来验证文件。该文件仅包含一行描述 EPUB 文件的 MIME 类型:application/epub+zip2、为了定位内容,电子书阅读器从
META-INF/container.xml文件开始。这是一个简短的 XML 文档,指示在哪里可以找到内容。对于此 EPUB 文件,container.xml文件如下所示:为了使
container.xml文件更易于阅读,我将单行拆分为多行,并添加了一些间距来缩进每行。XML 文件并不关心新行和空格等额外的空白,因此这种额外的间距不会影响 XML 文件。3、
container.xml文件表示 EPUB 的根从OEBPS目录中的content.opf文件开始。OPF 扩展名是因为 EPUB 基于 “ 开放打包格式 Open Packaging Format ”,但content.opf文件实际上只是另一个 XML 文件。4、
content.opf文件包含一个完整的 EPUB 内容清单,以及一个有序的目录,以及查找每一章或每一节的引用。这个 EPUB 的content.opf文件很长,因此我将在此仅展示一小部分作为示例。XML 数据包含在
块中,该块本身具有块、数据和包含电子书目录的块:osdc002 Tips and Tricks for C Programming Jim Hall English 2022-06-23T12:09:13Z ... ... ...你可以把数据匹配起来,看看在哪里可以找到每个部分。EPUB 阅读器就是这样做的。例如,目录中的第一项引用了
section0001,它在清单中被定义为位于sections/section0001.xhtml文件中。该文件的名称不需要与idref条目相同,但 LibreOffice Writer 的自动程序就是这样创建该文件的。(你可以在元数据中看到,这个 EPUB 是在 Linux 上用 LibreOffice 7.3.0.3 版本创建的,它可以将内容导出为 EPUB 文件。)EPUB 格式
EPUB 文件是一种使用开放格式发布内容的好方法。EPUB 文件格式是 XML 元数据与 XHTML 内容,包含在一个 zip 文件内。虽然大多数技术作家使用工具来创建 EPUB 文件,因为 EPUB 是基于开放标准,意味着你可以使用其他方式创建自己的 EPUB 文件。