epub图书_使用EPUB构建数字图书

本文是一篇关于如何创建EPUB格式电子书的教程,适合开发人员。内容涵盖EPUB的基本概念、文件结构、元数据、内容创建、打包验证以及从DocBook到EPUB的转换。教程强调EPUB的开发者友好性,通过实例指导读者从创建元数据到打包成ZIP归档,最后进行验证和测试。
摘要由CSDN通过智能技术生成

epub图书

在你开始前

本教程将指导您创建EPUB格式的电子书。 EPUB是一种基于XML的,对开发人员友好的格式,它已成为数字图书的事实上的标准。 但是EPUB不仅适合书籍:有了它,您可以:

  • 捆绑文档以供离线阅读或轻松分发
  • 打包博客文章或其他Web本地内容
  • 使用常见的开源工具进行构建,搜索和重新混合

关于本教程

您可以通过手动生成EPUB书籍来开始本教程,以帮助您学习所有组件和所需的文件。 接下来,该教程显示了如何捆绑完成的数字书并根据规范对其进行验证,以及如何在各种阅读系统中对其进行测试。

然后,它涵盖了从DocBook XML(技术文档使用最广泛的标准之一)生成EPUB的方法,以及如何使用Python从头到尾完全自动化DocBook的EPUB创建。

目标

在本教程中,您:

  • 了解什么是EPUB,它的背后是谁,以及谁在采用它
  • 探索EPUB捆绑包的结构,包括其所需的文件及其架构
  • 使用简单的内容从头开始创建有效的EPUB文件
  • 使用开源工具从DocBook(用于技术文档和书籍的广泛使用的架构)生成EPUB文件
  • 使用Python和DocBook自动执行EPUB转换

先决条件

尽管您应该熟悉创建文件和目录的机制,但是本教程假定没有特定的操作系统。 强烈建议使用XML编辑器或集成开发环境(IDE)。

对于本教程有关自动创建EPUB的后续部分,本教程假定您了解一种或多种基本XML处理技能(基于XSLT,DOM或SAX的解析),以及如何使用XML原生API构造XML文档。

完成本教程无需熟悉EPUB文件格式。

系统要求

要完成本教程中的示例,您需要一个Java解释器(1.5或更高版本)和一个Python解释器(2.4或更高版本),以及各自的必需XML库。 但是,经验丰富的XML开发人员应该能够使示例适用于具有XML库的任何编程语言。

关于EPUB格式

了解EPUB的背景,最常使用的EPUB,以及EPUB与可移植文档格式(PDF)有何不同。

什么是EPUB?

EPUB是由国际数字出版论坛(IDPF)(用于数字出版行业的贸易和标准协会)标准化的可重用数字书籍和出版物的XML格式。 IDPF于2007年10月正式采用了EPUB,到2008年,主要发行商Swift采用了EPUB。 您可以在所有主要操作系统,Sony PRS等电子墨水设备以及Apple iPhone等小型设备上使用各种开源软件和商业软件来读取EPUB格式。

谁在生产EPUB? 仅书籍吗?

尽管传统印刷出版商最先采用EPUB,但格式上没有任何限制将其用于电子书。 使用免费提供的软件工具,您可以将网页作为EPUB捆绑,转换纯文本文件或将现有DocBook XML文档转换为格式正确且有效的EPUB。 (我将在“ 从DocBook到EPUB”中介绍后者。)

EPUB与PDF有何不同?

PDF仍然是世界上使用最广泛的电子文档格式。 从书籍出版商的角度来看,PDF具有以下优点:

  • PDF文件允许对布局进行完美的像素控制,包括复杂的易于打印的布局,例如多列和备用的正/反样式。
  • PDF可以通过多种基于GUI的文档工具生成,例如Microsoft®Office Word或Adobe®InDesign®。
  • PDF阅读器无处不在,并已安装在大多数现代计算机上。
  • 可以将特定字体嵌入PDF中,以精确控制最终输出。

从软件开发人员的角度来看,PDF与理想情况相去甚远:

  • 这不是学习的标准。 因此,将您自己的PDF生成代码放在一起并不是一件容易的事。
  • 尽管PDF现在是国际标准化组织(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。 可以使用标准XML工具包来构建EPUB文件,而无需任何特殊或专有软件。
  • EPUB内容(电子书的实际文本)几乎始终是XHTML 1.1版。 (另一种格式是DTBook的,用于编码的书籍为视障。见标准相关主题有关DTBook的更多信息,这是不包括在本教程)。
  • 大多数EPUB XML模式均取自可免费获得的现有已发布规范。

两个关键点是EPUB元数据是XMLEPUB内容是XHTML 。 如果您的文档构建系统生成Web的输出和/或基于XML,那么它也非常接近能够生成EPUB。

建立您的第一个EPUB

最低限度的EPUB捆绑包包含几个必需的文件。 该规范对于EPUB档案中这些文件的格式,内容和位置可能非常严格。 本部分说明使用EPUB标准时必须了解的内容。

EPUB束的解剖

最小EPUB文件的基本结构遵循清单1中的模式。 准备分发时,此目录结构会捆绑在一起成为ZIP格式的文件,在将EPUB文件作为ZIP归档捆绑在一起时,有一些特殊要求。

清单1.一个简单的EPUB档案的目录和文件布局
mimetype
META-INF/
   container.xml
OEBPS/
  content.opf
  title.html
  content.html
  stylesheet.css
  toc.ncx
  images/
     cover.png

注意:可以从Downloadable resources中获得遵循此模式的样本书,但是我建议您按照教程来创建自己的书。

要开始构建您的EPUB图书,请为EPUB项目创建目录。 打开文本编辑器或IDE(例如Eclipse)。 我建议使用具有XML模式,特别是一个可以验证对编辑的RELAX NG模式中列出的相关主题

模仿文件

这很简单:mimetype文件是必需的,并且必须命名为mimetype。 该文件的内容始终为:

application/epub+zip

请注意,mimetype文件不能包含任何换行符或回车符。

此外,mimetype文件必须是ZIP存档中的第一个文件,并且本身不能被压缩。 您将在将EPUB文件作为ZIP归档文件打包时看到如何使用常见的ZIP参数包含它。 现在,只需创建此文件并保存,并确保它位于您的EPUB项目的根目录下即可。

META-INF / container.xml

在EPUB的根级别,必须有一个META-INF目录,并且必须包含一个名为container.xml的文件。 EPUB阅读系统将首先查找此文件,因为它指向数字图书的元数据的位置。

创建一个名为META-INF的目录。 在其中打开一个名为container.xml的新文件进行写入。 容器文件很小,但是其结构要求很严格。 将清单2中的代码粘贴到META-INF / container.xml中。

清单2.示例container.xml文件
<?xml version="1.0"?>
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值