Epub电子书格式(三)
来源:互联网 发布:发票验旧需要什么数据 编辑:程序博客网 时间:2024/05/22 14:58
做人要厚道:http://blog.sina.com.cn/s/blog_6441e0640100gmi8.html
Packaging Format 元数据文件
该文件名没有特殊要求,扩展名为opf。它指定了图书中所有内容的位置,如文本和图像等其他媒体。它还给出了另一个元数据文件,内容的 Navigation Center eXtended (NCX) 表,有的称其为逻辑目录。
该 OPF 文件是 EPUB 规范中最复杂的元数据。让我们来看一看它的内容吧:
包含示例元数据的 OPF content 文件
<?xml version='1.0' encoding='utf-8'?>
<package xmlns="http://www.idpf.org/2007/opf"
</package>
我们来一步一步的分析它的各个部分。
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 元数据摘要
...
<metadata>
</metadata>
...
有两个术语是必须的,即 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的一部分:
...
<manifest>
</manifest>
...
第一项 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 的一部分
... <spine toc="ncx"> <itemref idref="cover" linear="no"/> <itemref idref="content"/> </spine> ... 每个itemref
元素都需要有一个idref
属性,并且和 manifest 中的某个 ID 匹配。toc
属性也是必需的。它引用 manifest 中表示内容 NCX 表文件名的 ID。 spine 中的linear
属性表明该项是作为线性阅读顺序中的一项,还是和先后次序无关。建议将封面定义为linear=no
。符合 EPUB 规范的阅读系统将首先打开 spine 中没有 设置为linear=no
中的第一项。GuideOPF 内容文件的最后一部分是 guide。这一节是可选的,但最好保留。下面显示了 guide 文件的部分内容。
<guide>
</guide>
...
guide 可以为 EPUB 阅读系统提供语义信息。manifest 定义了 EPUB 中的物理资源,spine 提供了这些资源的顺序信息,guide 负责解释这些部分的含义。下面是可以出现在 OPF guide 中的部分值:
cover
: 图书封面title-page
: 包含作者和出版商信息的页面toc
:目录
完整的列表请参阅 OPF 2.0 规范
- Epub电子书格式(三)
- Epub电子书格式(一)
- Epub电子书格式(四)
- Epub格式电子书格式
- Epub电子书的格式(二)
- epub格式电子书剖析
- epub格式的电子书
- epub格式电子书剖析 .
- 电子书epub,手机格式
- epub电子书格式简介
- Epub格式电子书格式解析
- epub格式电子书剖析之三:NCX文件构成
- epub格式电子书剖析之三:NC…
- 电子书epub,手机格式2
- 电子书epub,手机格式3
- 关于epub格式电子书和PC上的ePub阅读器...
- 电子书格式,ePub将是趋势
- 电子书格式,ePub将是趋势
- poj 2985 The k-th Largest Group 求第K大数 Treap, Binary Index Tree, Segment Tree
- Epub电子书的格式(二)
- 条款5:了解C++默认编写并调用哪些函数
- chapter01 oracle体系结构
- iOS GET请求对请求参数过滤
- Epub电子书格式(三)
- 【练习】P62页3.2题
- 开张大吉
- JAVA中的for循环
- c# 日志类
- php源码--更正系统显示时间
- android 中的进程
- Epub电子书格式(四)
- Effective 学习之以独立语句将newed对象置入智能指针