程序员制作epub电子书

本文详述了EPUB格式的制作过程,包括从头创建一个简单的EPUB文件、理解其目录结构、使用XML和XHTML创建内容,以及如何通过DocBook和Python自动生成EPUB。此外,还介绍了EPUB与PDF的区别,强调了EPUB的开放性和可移植性,适合技术文档和电子图书的创建。最后,提供了验证和打包EPUB文件的方法,以及从DocBook到EPUB的自动化转换流程。
摘要由CSDN通过智能技术生成
来自:http://www.cnblogs.com/linlf03/archive/2011/12/15/2285953.html

/Page1

简介: 是否需要分发文档、创建电子图书或者把喜欢的博客文章存档?EPUB 是一种开放式的数字图书规范,以常用的技术如 XML、CSS 和 XHTML 为基础,EPUB 文件可在便携式的 e-ink 设备、移动电话和桌面计算机上阅读。本教程详细阐述了 EPUB 格式,首先用 Java? 技术示范了 EPUB 验证,然后详细说明如何使用 DocBook 和 Python 自动创建 EPUB。

开始之前

本教程讲述如何创建 EPUB 格式的电子图书。EPUB 是一种基于 XML 的、对开发者友好的格式,正逐渐成为数字图书的事实标准。但 EPUB 不仅可用于图书,还包括:

•对文档打包以便离线阅读或者分发
•打包博客文章或者其他 Web 内容
•使用常见的开放源代码工具创建、搜索和整理
关于本教程

常用的缩写词
•API:应用程序编程接口(application programming interface)
•CSS:级联样式表(Cascading stylesheet)
•DOM:文档对象模型(Document Object Model)
•DTD:文档类型定义(Document type definition)
•GUI:图形用户界面(Graphical user interface)
•HTML:超文本标记语言(Hypertext Markup Language)
•SAX:XML 简易 API(Simple API For XML)
•W3C:万维网联盟(World Wide Web Consortium)
•XHTML:可扩展的 HTML(Extensible HTML)
•XML:可扩展标记语言
本教程首先手工创建一个 EPUB 图书,帮助您了解其构成和需要的文件。然后说明如何捆绑完成的数字图书,按照规范进行验证以及在不同的阅读系统上测试。

然后讨论如何从 DocBook XML 生成 EPUB — 最常用的技术文档标准之一 — 以及如何使用 Python 实现从 DocBook 到 EPUB 的自动创建。

目标

通过本教程可以学习如下内容:

•了解 EPUB 是什么,谁支持它,谁采用它
•了解 EPUB 包的结构,包括需要的文件及其模式
•如何从头创建一个内容简单而有效的 EPUB 文件
•使用开放源代码工具从 DocBook 生成 EPUB 文件,DocBook 是一种常见的技术文档和图书模式
•使用 Python 和 DocBook 自动转换成 EPUB
先决条件

本教程对操作系统没有特殊要求,但是应该熟悉创建文件和目录的机制。建议使用 XML 编辑器或者集成开发环境(IDE)。

对于本教程后半部分的 EPUB 创建自动化内容,需要读者了解基本的 XML 处理技巧 — XSLT、 DOM 或者基于 SAX 的解析 — 并熟悉使用 XML 原生 API 构造 XML 文档。

阅读本教程不需要熟悉 EPUB 文件格式。

系统需求

尝试本教程中的例子,需要一个 Java 解释器(1.5 或更高版本)和 Python 解释器(2.4 或更高版本)以及相应的 XML 库。不过,有经验的 XML 开发人员很容易将这些例子修改为适合任何编程语言和 XML 库。



/Page2

关于 EPUB 格式

了解 EPUB 的背景,EPUB 最适合做什么,以及 EPUB 和便携式文档格式(PDF)的区别。

什么是 EPUB?

EPUB 是可逆的数字图书和出版物 XML 格式,数字出版业商业和标准协会 International Digital Publishing Forum (IDPF) 制定的标准。IDPF 于 2007 年 10 月正式采用 EPUB,随后被主流出版商迅速采用。可以使用各种开放源代码或者商业软件在所有主流操作系统、Sony PRS 之类的 e-ink 设备或者 Apple iPhone 之类的小型设备上阅读 EPUB 格式。

谁在使用 EPUB?只能用于图书吗?

虽然最早采用 EPUB 的是传统的印刷品出版商,但是这并不妨碍它在电子图书中的应用。利用免费的软件工具,可以将网页捆绑成 EPUB,转化成文本文件或者将原有的 DocBook XML 文档转化成结构良好的、有效的 EPUB(后一点将在 从 DocBook 到 EPUB 一节讨论)。

EPUB 与 PDF 有什么不同?

PDF 仍然是世界上应用最广泛的电子文档格式。从图书出版商的角度来看,PDF 的优点包括:

•PDF 文件允许对页面布局进行像素级的控制,包括复杂的打印格式,如多栏格式和奇偶页相间的格式。
•有多种不同的 GUI 文档工具可生成 PDF,如 Microsoft? Office Word 和 Adobe? InDesign?。
•PDF 阅读器非常普及,现在大多数计算机上都有安装。
•PDF 可以嵌入特殊的字体,精确控制最终的输出结果。
三合一的标准
EPUB 包括三个单独的 IDPF 规范,虽然实际上将其统称为 EPUB 更保险:

•Open eBook Publication Structure Container Format (OCF):定义了 EPUB 档案的目录树结构和文件结构(ZIP)。
•Open Publication Structure (OPS):定义了电子图书的公共词汇表,特别是可作为图书内容的格式(比如 XHTML 和 CSS)。
•Open Packaging Format (OPF):描述了 EPUB 必须的和可选的元数据、阅读顺序和目录。
此外,对于档案中的特定类型的内容,EPUB 还重用了其他一些标准,如 XHTML 1.0 和 Digital Accessible Information SYstem (DAISY)。

从软件开发人员的角度来看,PDF 还远远不够理想:

•这不是一种简单易学的标准,因此编写自己的 PDF 生成代码非常困难。
•虽然 PDF 现在是一种 International Organization for Standardization(ISO)标准(ISO 32000-1:2008),但过去一直受一家公司的控制:Adobe Systems。
•尽管多数编程语言都提供了 PDF 库,但很多是商业产品或者嵌入到 GUI 应用程序中,外部进程不容易控制。并非所有的免费库都得到积极的维护。
•PDF 原生文本可以通过程序提取出来并进行搜索,但很少可以对 PDF 进行标记以便简单可靠地转化成 Web 友好的格式。
•PDF 文档不容易流动,就是说很难适应小屏幕或者对布局进行明显的改变。
为何说 EPUB 对开发人员是友好的

EPUB 解决了 PDF 和开发人员友好性有关的所有瑕疵。一个 EPUB 就是一个简单 ZIP 格式文件(使用 .epub 扩展名),其中包括按照预先定义的方式排列的文件。如何制作 ZIP 文档有一些技巧,稍后将在 将 EPUB 文件捆绑为 ZIP 文档 一节介绍。除此以外,EPUB 非常简单:

•EPUB 中的所有内容基本上都是 XML。EPUB 文件可使用标准 XML 工具创建,不需要任何专门或者私有的软件。
•EPUB 内容(eBook 的具体内容)基本上都是 XHTML 1.1(另一种格式是 DTBook,为视力受限者编码书籍的一种标准。关于 DTBook 的更多信息请参阅 参考资料,本教程中不涉及这部分)。
•大多数 EPUB XML 模式都来自现成的、可免费获得的、已发布的规范。
最关键的在于 EPUB 元数据是 XML,EPUB 内容是 XHTML。如果您的文档构建系统产生的结果用于 Web 和/或基于 XML,那么也可用于生成 EPUB。



/Page3

创建第一个 EPUB

最小的 EPUB 包至少要包含几个文件。规范对于 EPUB 包中这些文件的格式、内容和位置要求可能很严格。这一节讨论使用 EPUB 标准必须 了解的基础知识。

解剖 EPUB 包

小型 EPUB 文件的基本结构遵循 清单 1 所示的样式。准备好分发之前,整个目录结构被压缩到一个 ZIP 格式文件中,几点特殊要求将在 用 ZIP 打包 EPUB 文件 一节讨论。

清单 1. 简单 EPUB 档案的目录和文件结构


mimetype
META-INF/
container.xml
OEBPS/
content.opf
title.html
content.html
stylesheet.css
toc.ncx
images/
cover.png



提示:可 下载 符合该结构的一个电子图书,但建议按照本教程的说明自己创建一个。

编写 EPUB 图书之前首先创建 EPUB 项目的目录。打开文本编辑器或者 Eclipse 之类的 IDE。建议采用支持 XML 的编辑器 — 具体而言就是能够根据 参考资料 给出的 Relax NG 模式进行验证。


--------------------------------------------------------------------------------



mimetype 文件

这个文件非常简单,必须命名为 mimetype,文件内容如下:


application/epub+zip



要注意,mimetype 文件不能包含新行或者回车。

此外,mimetype 文件必须作为 ZIP 档案中的第一个文件,而且自身不能压缩。用 ZIP 打包 EPUB 文件 一节将介绍如何使用一般的 ZIP 参数将其包含进来。现在创建该文件并保存,并确保它在 EPUB 项目的根目录中。

META-INF/container.xml

EPUB 根目录下必须包含 META-INF 目录,而且其中要有一个文件 container.xml。EPUB 阅读系统首先查看该文件,它指向数字图书元数据的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值