电子书及其格式:FB2和FB3-历史,优点,缺点和工作原理

在上一篇文章中,我们讨论了DjVu格式功能 。 今天,我们决定专注于FictionBook2格式(也称为FB2)及其“继承者” FB3。


/ Flickr / 朱迪特·克莱因 / CC

格式外观


在90年代中期,发烧友开始对苏联书籍进行数字化处理。 他们翻译和保存了多种格式的文献。 Runet中最早的一个库-Maxim Moshkov库 -使用了格式化的文本文件(TXT)。

之所以选择他,是因为它对字节损坏和多功能性具有抵抗力-TXT在任何操作系统上均可打开。 但是,这使得处理存储的文本信息变得困难 。 例如,要转到第1000行,您必须在其前面处理999行。 书籍也存储在Word文档和PDF中-后者难以转换为其他格式,并且功能较弱的计算机无法打开和显示 PDF文档,因此会出现延迟。

也为电子文献的“存储”使用了HTML。 他简化了索引编制,转换为其他格式并创建了文档(用标签标记文本),但是引入了自己的缺点。 最重要的一项是该标准的“ 含糊性 ”:在编写标签时允许某些自由。 其中一些必须关闭,其他一些(例如<p>)-不必关闭。 标签本身可以具有任意的嵌套顺序。

而且,尽管不鼓励使用此类文件-此类文档被认为是不正确的-该标准要求读者尝试显示其内容。 这就是出现困难的地方,因为在每个应用程序中,“推测”过程都是以自己的方式实现的。 而且,那时,市场上可用于读取的设备和应用程序可以理解一种或两种特殊格式。 如果这本书是一种格式,则必须重新格式化才能阅读。 FictionBook2或FB2接管了文本和转换的主要“组合”功能,旨在解决所有这些缺点。

请注意,该格式具有第一个版本-FictionBook1-但是,它本质上仅是实验性的,并没有持续很长时间,今天它不受支持并且不具有向后兼容性。 因此,FictionBook最常表示其“跟随者”-FB2格式。

FB2由LitRes技术总监Dmitry Gribov和Haali Reader阅读器的创建者Mikhail Matsnev领导的开发团队创建。 该格式基于XML(比HTML严格),它使用开放和嵌套标签来管理工作。 XML文档附带有所谓的XML模式。 XML模式是一个特殊的文件,其中包含所有标签并描述其应用规则(顺序,嵌套,强制和可选等)。 在FictionBook中,架构位于FictionBook2.xsd文件中。 您可以在链接上找到XML模式的示例(由升电子书店使用)。

文件结构FB2


文档中的文本存储在特殊标记中-段落类型元素:<p>,<v>和<subtitle>。 还有一个<empty-line>元素,该元素不包含任何内容,用于插入间隙。

所有文档均以根<fictionbook>标记开头,在其下方可能显示<stylesheet>,<description>,<body>和<binary>。

<stylesheet>标记包含样式表,以便于转换为其他格式。 <binary>包含呈现文档可能需要的base64编码数据。

<description>元素包含有关该书的所有必要信息:作品的类型,作者列表(F. I. O.,电子邮件地址和Internet上的网站),标题,带有关键字的块,注释。 它也可能包含有关文档修订的信息以及有关书籍出版商的信息(如果以纸质形式发行)。

这是FictionBook条目中<description>块的一部分,类似于Gutenberg项目中 Arthur Conan Doyle的《猩红色研究》中的内容:

<?xml version="1.0" encoding="iso-8859-1"?> <FictionBook xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"> <description> <title-info> <genre match="100">detective</genre> <author> <first-name>Arthur</first-name> <middle-name>Conan</middle-name> <last-name>Doyle</last-name> </author> <book-title>A Study in Scarlet</book-title> <annotation> </annotation> <date value="1887-01-01">1887</date> </title-info> </description> 

FictionBook文档的关键组成部分是<body>。 它包含本书本身的文本。 整个文档中可能有几个这样的标签-其他块用于存储脚注,注释和注释。

FictionBook还提供了一些用于处理超链接的标签。 它们基于W3C联盟开发的XLink规范,专门用于在XML文档中的不同资源之间创建链接。

格式的优点


FB2标准仅包含最少必需的标签集(足以满足小说的“设计”要求),从而简化了读者的处理过程。 此外,在使用FB格式的阅读器直接操作的情况下,用户将有机会为其自己配置几乎所有显示参数。

该文档的严格结构使您可以自动执行从FB格式到任何其他格式的转换过程。 相同的结构使处理文档的各个元素成为可能-通过书作者,书名,体裁等调整过滤器。因此,FB2格式在RuNet中获得了普及,成为俄罗斯电子图书馆和CIS国家图书馆的默认标准。

格式缺点


FB2格式的简单性是它的优点和缺点。 这限制了复杂的文本排版功能(例如,边注)。 它没有矢量图形或不支持编号列表。 因此,该格式不太适合教科书,参考书和技术文献(该格式的名称甚至可以说是小说书或“艺术书”)。

同时,为了显示有关书籍的最少信息(书名,作者和封面),程序需要处理几乎整个XML文档。 这是由于元数据位于文本的开头,而图像位于结尾的事实。

FB3-格式开发


由于对书籍的文本格式提出了更高的要求(并弥补了FB2的某些缺点),Gribov开始着手研究FB3格式。 后来的开发停止了,但是在2014年恢复了

根据作者的说法,他们研究了出版技术文献的真正需求,研究了教科书,参考书,手册,并概述了一套更具体的标签,可以显示任何书籍。

在新规范中,FictionBook格式是一种zip存档,其中元数据,图像和文本存储在单独的文件中。 在定义Open XML的ECMA-376标准中指定了zip文件格式要求及其组织协议。

进行了许多与格式设置有关的改进(排纸,下划线),并添加了一个新对象“块”,该对象以四边形的形式形成一本书的任意片段,并且可以围绕它随心所欲地嵌入文本中。 支持编号和项目符号列表。

FB3是在免费许可下分发的,并且具有开源代码,因此所有实用程序都可供发布者和用户使用:转换器,云编辑器和阅读器。 格式, 阅读器编辑器的当前版本可以在GitHub上的项目存储库中找到。

总体而言,FictionBook3的普及程度还不及其哥哥,但是,一些电子图书馆已经提供了这种格式的图书。 几年前,他们以升为单位宣布打算将其整个目录转换为新格式。 一些阅读器已经支持所有必需的FB3功能。 例如,所有现代ONYX阅读器模型,例如Darwin 3Cleopatra 3 ,都可以“开箱即用”的格式使用。


/ ONYX BOOX克娄巴特拉3

FictionBook3的发行范围更广,可以让您创建一个生态系统, 专注于在资源有限的任何设备上使用文本进行全面有效的工作:黑白或小显示屏,低内存等。根据开发人员的观点,一旦编译过的书在任何环境中都是最方便的。



PS:请您注意ONYX BOOX读者的一些评论:

Source: https://habr.com/ru/post/zh-CN411755/


All Articles