IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  XML  >

使用 EPUB 制作数字图书

基于 XML 的开放式 eBook 格式

developerWorks
前一页第 4 页,共 10 页后一页

文档选项

样例代码


对本教程的评价

帮助我们改进这些内容


打包和检查 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 文件,如 清单 11 所示(这些命令假设当前工作目录为 EPUB 项目。)


清单 11. 将 EPUB 打包成有效的 epub+zip 文件
					
$ zip -0Xq  my-book.epub mimetype
$ zip -Xr9Dq my-book.epub *

第一个命令创建了一个新的 ZIP 档案,并添加了没有进行压缩的 mimetype 文件。第二个命令添加其他内容。选项 -X-D 最大限度地减少 .zip 文件中无关紧要的信息;-r 递归地包含 META-INF 和 OEBPS 目录的内容。





回页首


EPUB 验证

虽然 EPUB 标准并不很难,但其 XML 文件必须符合特定的模式。如果使用模式感知的 XML 编辑器生成元数据和 XHTML,就能事半功倍。对 EpubCheck 包进行最后检查(参见 参考资料)。

Adobe 负责维护 EpubCheck 包,它是采用 Berkeley Software Distribution (BSD) 许可证的开源项目。它是一个可以作为独立工具、Web 应用程序运行的 Java 程序,或者可以将它集成到在 Java Runtime Environment (JRE) 1.5 或更高版本下运行的应用程序中。

在命令行中运行非常简单。清单 12 给出了一个例子。


清单 12. 运行 EpubCheck 工具程序
					
$ java -jar /path/to/epubcheck.jar my-book.epub

如果没有创建辅助文件或者元数据文件出错,可能会看到 清单 13 所示的错误消息。


清单 13. EpubCheck 错误
					
my-book.epub: image file OEBPS/images/cover.png is missing
my-book.epub: resource OEBPS/stylesheet.css is missing
my-book.epub/OEBPS/title.html(7): 'OEBPS/images/cover.png': 
     referenced resource missing in the package

Check finished with warnings or errors!

这时候可能需要设置 CLASSPATH 使它指向 EpubCheck 的安装位置,因为确实需要导入几个外部库。如果得到这样的消息则需要设置 CLASSPATH:

org.xml.sax.SAXParseException: no implementation available for schema language 
   with namespace URI "http://www.ascc.net/xml/schematron"

如果验证成功,就会看到 “No errors or warnings detected(没有检测到错误或警告)”。祝贺您完成了第一个 EPUB!





回页首


查看 EPUB

测试不仅仅是验证,还要保证书的外观看起来不错。样式表能正确工作吗?章节的逻辑顺序是否正确?书中是否包含了所有需要的内容?

有多重 EPUB 阅读器可供选择。图 1 显示了 Adobe Digital Editions (ADE) 的屏幕截图,这是最常用的 EPUB 阅读器。


图 1. ADE 中显示的 EPUB
ADE 中显示的 EPUB

字体颜色和图像都显示出来了,不错。ADE 未能用 sans-serif 字体正确地显示标题,不过这可能是 CSS 的问题。这时候最好换一个阅读器试试。图 2 是用我自己编写的、开放源代码的、基于 Web 的 EPUB 阅读器 Bookworm 显示的同一本书。


图 2. 在 Bookworm 中显示 EPUB
在 Bookworm 中显示 EPUB

这里的问题在于 ADE 不支持这种特殊声明。如果数字图书的格式非常重要,那么就必须了解不同阅读软件的特点。

前面我们费了很大力气手工创建了一个简单的 EPUB,现在看看如何将一种常见的 XML 文档 DocBook 转换成 EPUB。





回页首



前一页第 4 页,共 10 页后一页
    关于 IBM 隐私条约 联系 IBM 使用条款