首页 EPUB格式

EPUB格式

举报
开通vip

EPUB格式什么是 EPUB? PUB 是可重排版(reflowable直译可回流)的基于XML格式的电子书或其它数字出版物,是数字出版业商业和标准协会 International Digital Publishing Forum (IDPF) 制定的标准。IDPF 于 2007 年 10 月正式采用 EPUB,随后被主流出版商和设备生产商迅速采用。有各种开放源代码或者商业的阅读软件支持几乎所有的主流操作系统。象Sony PRS 之类的 e-ink 设备或者 Apple iPhone 之类的小型设备上都能阅读 EPUB 格式的...

EPUB格式
什么是 EPUB?< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> PUB 是可重排版(reflowable直译可回流)的基于XML格式的电子书或其它数字出版物,是数字出版业商业和标准协会 International Digital Publishing Forum (IDPF) 制定的标准。IDPF 于 2007 年 10 月正式采用 EPUB,随后被主流出版商和设备生产商迅速采用。有各种开放源代码或者商业的阅读软件支持几乎所有的主流操作系统。象Sony PRS 之类的 e-ink 设备或者 Apple iPhone 之类的小型设备上都能阅读 EPUB 格式的电子出版物。 一个 EPUB 就是一个简单 ZIP 格式文件(使用 .epub 扩展名),其中包括按照预先定义的方式排列的文件。实际上如果把epub文件用winrar打开的话,你可以看到epub书的目录结构和基本的文档。它的内容都是XML格式的,而XML的工具还是比较多的。 三合一的标准 EPUB 包括三个单独的 IDPF  规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,虽然实际上将其统称为 EPUB 更保险: (1)、Open eBook Publication Structure Container Format (OCF):定义了 EPUB 档案的目录树结构和文件结构(ZIP)。 (2)、Open Publication Structure (OPS):定义了电子图书的公共词汇表,特别是可作为图书内容的格式(比如 XHTML和 CSS)。 (3)、Open Packaging Format (OPF):描述了 EPUB 必须的和可选的元数据、阅读顺序和目录。 此外,对于档案中的特定类型的内容,EPUB 还重用了其他一些标准,如 XHTML 1.0 和 Digital Accessible Information SYstem (DAISY)。 清单 1. 简单 EPUB 档案的目录和文件结构 mimetype META-INF/ container.xml OEBPS/ content.opf title.html content.html stylesheet.css toc.ncx images/ cover.png 我们已经知道epub中包含那些文件夹了,下面会分别说明一下每一个文件的结构。 1、mimetype 文件 这个文件非常简单,必须命名为 mimetype,文件内容如下: application/epub+zip 要注意,mimetype 文件不能包含新行或者回车。 此外,mimetype 文件必须作为 ZIP 档案中的第一个文件,而且自身不能压缩。并确保它在 EPUB 项目的根目录中。 2、META-INF/container.xml EPUB 根目录下必须包含 META-INF 目录,而且其中要有一个文件 container.xml。EPUB 阅读系统首先查看该文件,它指向数字图书元数据的位置。 创建目录 META-INF。在其中创建一个新文件 container.xml。container 文件非常小,但是对结构要求很严格。将 清单 2 中的代码粘贴到 META-INF/container.xml 中。 清单 2. container.xml 文件 full-path(粗体)的值仅仅是该文件的一部分,不同的文件可能相差甚大。目录路径必须相对于 EPUB 文件根目录本身,而不是 META-INF 目录。 mimetype 和 container 是 EPUB 档案中仅有的两个需要严格限制位置的文件。建议将其他文件保存到 EPUB 的子目录下(通常被称为OEBPS但不是必须的)。 3、Packaging Format 元数据文件 该文件名没有特殊要求,扩展名为opf。它指定了图书中所有内容的位置,如文本和图像等其他媒体。它还给出了另一个元数据文件,内容的 Navigation Center eXtended (NCX) 表,有的称其为逻辑目录。 该 OPF 文件是 EPUB 规范中最复杂的元数据。让我们来看一看它的内容吧: 包含示例元数据的 OPF content 文件 Hello World: My First EPUB My Name urn:uuid:12345 我们来一步一步的分析它的各个部分。 3.1 OPF 模式与名称空间 OPF 文档本身必须使用名称空间 http://www.idpf.org/2007/opf,元数据则使用 Dublin Core Metadata Initiative (DCMI)名称空间 http://purl.org/dc/elements/1.1/。 最好现在将 OPF 和 DCMI 模式添加到 XML 编辑器中。 元数据 Dublin Core 定义了一组常用的元数据,可用于描述各种不同的数字资料,它不是 EPUB 规范的一部分。所有这些术语都可以出现在 OPF 元数据部分。编写要分发的 EPUB 时,这里可以放很多内容,目前来说下面的内容就足够了。 OPF 元数据摘要 ... Hello World: My First EPUB My Name urn:uuid:12345 ... 有两个术语是必须的,即 title 和 identifier。按照 EPUB 规范,标识符必须是惟一的,但是这个惟一的值要靠数字图书的创建者来定义。对于图书出版商来说,这个字段一般包含ISBN编号。对于其他 EPUB 创建者,可以考虑使用URL 或者很大的随机生成的惟一用户 ID(UUID)。要注意,属性 unique-identifier 的值必须和 dc:identifier 元素的ID 属性匹配。 其他和内容相关的可以考虑添加的元数据包括: 语言(如 dc:language)。 出版日期(如 dc:date)。 出版商(如 dc:publisher)。(可以是公司或个人的名称)。 版权信息(如 dc:rights)。 更多的元数据可以参见DCMI规范和用法。 EPUB 规范没有要求包含 name 属性值为 cover 的 meta 元素,但为了增加封面和图像的可移植性,建议这样做。一些 EPUB 呈现程序喜欢使用图像文件作为封面,另一些则愿意使用包含内联封面图像的 XHTML 文件。该例子显示了这两种情况。meta 元素的 content 属性的值应该是图书封面图像在 manifest 中的 ID 号,manifest 是 OPF 文件的一部分。 Manifest OPF manifest 列出了 EPUB 内容(不包括元数据)中的所有资源。就是说,通常是组成电子图书文本的一组 XHTML文件再加上一些相关的媒体如图像。EPUB 鼓励使用 CSS 设定图书内容的样式,因此 manifest 中也包含 CSS。进入数字图书的所有文件都必须在 manifest 中列出。 下面给出了一个menifest的一部分: ... ... 第一项 toc.ncx是必须的。所有的项都有相应的 media-type 值,XHTML 内容的媒体类型为application/xhtml+xml。媒体类型必须正确,不能 是 text/html 或者其他类型。 EPUB支持四种核心图像文件类型:JPEG、PNG、GIF 和 Scalable Vector Graphics (SVG)。 href属性的值应该是一个相对于该 OPF 文件 的统一资源标识符(URI)。(很容易和 container.xml 中对 OPF 文件的引用混淆,其中的引用是相对于 EPUB 的整体引用)。这里的 OPF 文件位于和内容相同的 OEBPS 目录中,因此不需要路径信息。 Spine manifest 告诉 EPUB 阅读器哪些文件属于档案,spine 则指定这些文件出现的顺序或 — 按照 EPUB 的说法 — 数字图书的线性阅读顺序。可以将 OPF spine 看作是书中 “页面” 的顺序。按照文档顺序从上到下依次读取 spine。 下面为OPF spine 的一部分 ... ... 每个 itemref 元素都需要有一个 idref 属性,并且和 manifest 中的某个 ID 匹配。toc 属性也是必需的。它引用 manifest 中表示内容 NCX 表文件名的 ID。 spine 中的 linear 属性表明该项是作为线性阅读顺序中的一项,还是和先后次序无关。建议将封面定义为 linear=no。符合 EPUB 规范的阅读系统将首先打开 spine 中没有 设置为 linear=no 中的第一项。 GuideOPF 内容文件的最后一部分是 guide。这一节是可选的,但最好保留。下面显示了 guide 文件的部分内容。 ... ... guide 可以为 EPUB 阅读系统提供语义信息。manifest 定义了 EPUB 中的物理资源,spine 提供了这些资源的顺序信息,guide 负责解释这些部分的含义。下面是可以出现在 OPF guide 中的部分值: cover: 图书封面 title-page: 包含作者和出版商信息的页面 toc:目录 完整的列表请参阅 OPF 2.0 规范 现在要讲到epub一个重要的文件NCX(Navigation Control file for XML applications) 内容的 NCX 表 NCX表,在AmazonKindlePublishingGuidelinesV1.3中被称为逻辑目录(Logical Table Of Contents),虽然kindle的电子书不是epub格式,但NCX也是强制要求的文件之一。 尽管 OCF 文件是作为 EPUB 本身的一部分定义的,但最后一个主要的元数据文件参照了不同的数字图书标准。DAISY 是一个专门为不能使用传统书籍的读者设计数据格式的组织,通常是因为视力受损或者不便于使用印刷的书籍。EPUB 借用了 DAISY 的 NCX DTD。NCX 定义了数字图书的目录表。复杂的图书中,目录表通常采用层次结构,包括嵌套的内容、章和节。 使用 XML 编辑器创建 OEBPS/toc.ncx 下面给出了一个简单的NCX文件内容: Hello World: My First EPUB Book cover Contents NCX 元数据 DTD 要求 NCX  标记中包含四个 meta 元素: uid: 数字图书的惟一 ID。该元素应该和 OPF 文件中的 dc:identifier 对应。 depth:反映目录表中层次的深度。该例只有一层,因此是 1。 totalPageCount 和 maxPageNumber:仅用于纸质图书,保留 0 即可。 docTitle/text 的内容是图书的标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,和 OPF 中的 dc:title 匹配。 NCX navMap navMap 是 NCX 文件中最重要的部分,定义了图书的目录。navMap 包含一个或多个 navPoint 元素。每个 navPoint都要包含下列元素: playOrder 属性,说明文档的阅读顺序。和 OPF spine 中 itemref 元素的顺序相同。 navLabel/text 元素,给出该章节的标题。通常是章的标题或者数字,如 “第一章”,或者 — 像这个例子一样 —“封面”。 content 元素,它的 src 属性指向包含这些内容的物理资源。就是 OPF manifest 中声明的文件(也可使用片段标识符引用 XHTML 内容中的锚元素 — 比如 content.html#footnote1)。 还可以有一个或多个 navPoint 元素。NCX 使用嵌套的导航点表示层次结构的文档。 该文档的结构非常简单:只有两页,不存在嵌套关系。就是说有两个 navPoint 元素,它们的 playOrder 值按升序排列,从 1 开始。在 NCX 中可以命名这些章节,以便读者跳到电子图书不同的部分。 ***NCX 和 OPF 元数据的交叉 由于 NCX 源自其他标准,使用 NCX 编码的信息和 OPF 内容之间存在重复。如果通过程序生成 EPUB,这算不上什么问题,因为同样的代码可输出到两个文件中。两个位置的信息要一致,不同的 EPUB 读者可能使用不同位置的值。(可如果手工去编写呢?) ***NCX 和 OPF spine 有什么不同? 两者很容易混淆,因为两个文件都描述了文档的顺序和内容。要说明两者的区别,最简单的办法就是拿印刷书来打比方:OPF spine 描述了书中的各个章节是如何实际连接起来的,比方说翻过第一章的最后一页就看到第二章的第一页。NCX 在图书的一开始描述了目录。目录肯定会包含书中主要的章节,但是还可能包含没有单独分页的小节。 一条法则是 NCX 包含的 navPoint 元素通常比 OPF spine 中的 itemref 元素多。实际上,spine 中的所有项都会出现在NCX 中,但 NCX 可能更详细。 添加最后的内容 现在知道了 EPUB 需要的所有元数据,可以加入真正的图书内容了。可以使用 下载 的内容,也可以自己写,只要文件名和元数据匹配即可。 然后创建下列文件和文件夹: title.html:图书的标题页。创建该文件并在其中包含引用封面图片的 img 元素,src 的属性值为 images/cover.png。 images:在 OEBPS 下创建该文件夹,然后复制给定的示例图片(或者创建自己的图片)并命名为 cover.png。 content.html:图书的实际文字内容。 stylesheet.css:将该文件放在和 XHTML 文件相同的 OEBPS 目录中。该文件可以包含任意 CSS 声明,比如设置字体或者文字颜色。 现在我们基本了解了一点epub的结构和文档的特点。高人可以手工地制作一本epub电子书了。当然少了最后打包的介绍。 用 ZIP 打包 EPUB 文件 EPUB 规范的 OEBPS Container Format 讨论了 EPUB 和 ZIP,最重要的几点是: 档案中的第一个文件必须是 mimetype 文件(参见本教程 Mimetype 一节)。mimetype 文件不能被压缩。这样非ZIP 工具就能从 EPUB 包的第 30 个字节开始读取原始字节,从而发现 mimetype。 ZIP 档案不能加密。EPUB 支持加密,但不是在 ZIP 文件这一层上。 在类UNIX操作系统上,使用 ZIP 2.3 可通过两个命令来创建 EPUB ZIP 文件,(这些命令假设当前工作目录为 EPUB项目。) 将 EPUB 打包成有效的 epub+zip 文件 $ zip -0Xq my-book.epub mimetype $ zip -Xr9Dq my-book.epub * 第一个命令创建了一个新的 ZIP 档案,并添加了没有进行压缩的 mimetype 文件。第二个命令添加其他内容。选项-X 和 -D 最大限度地减少 .zip 文件中无关紧要的信息;-r 递归地包含 META-INF 和 OEBPS 目录的内容。 -0:仅存贮,不压缩。 -9:压缩得更好 -q:安静模式 -r:递归压缩子目录 -D:不加入目录项 -X:排除另外的文件属性 最后还是要检查验证一下生成的epub文件。 EPUB 验证 虽然 EPUB 标准并不很难,但其 XML 文件必须符合特定的模式。如果使用模式感知的 XML 编辑器生成元数据和XHTML,就能事半功倍。对 EpubCheck 包进行最后检查 Adobe 负责维护 EpubCheck 包,它是采用 Berkeley Software Distribution (BSD) 许可证的开源项目。它是一个可以作为独立工具、Web 应用程序运行的 Java 程序,或者可以将它集成到在 Java Runtime Environment (JRE) 1.5 或更高版本下运行的应用程序中。 在命令行中运行非常简单: $ java -jar /path/to/epubcheck.jar my-book.epub 根据错误的情况会提示出错误的信息,可以根据信息进行修改。
本文档为【EPUB格式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_953390
暂无简介~
格式:doc
大小:69KB
软件:Word
页数:8
分类:互联网
上传时间:2012-07-16
浏览量:239