你的 7 种开放电子书格式指南

目前还没有读者喜欢这个。
open up

Opensource.com

电子书,或称 eBooks,已经存在很长时间了,但用于阅读它们的便捷设备是相对较新的发展。在手机、平板电脑和专用电子书阅读器之间,您很可能在生活中拥有一些可以用来阅读电子书的设备。这对于提高您的阅读量非常棒,但这也引出了一个问题,即电子书有哪些开放文件格式,以及哪种格式最好。

为什么选择电子书?

电子书很棒。我使用电子书的时间比专用阅读器出现的时间要长得多。

我喜欢电子书能够让我随身携带几卷文本,而无需实际承担几令纸的重量。当然,我可能不会在杂货店排队时阅读完儒勒·凡尔纳的全部作品,但知道我有这些作品以备不时之需,这让我感到安慰。我还欣赏它们让我能够找到我最喜欢的引语或段落,以及视力受限的读者可以放大文本以便阅读,或者完全失明的读者可以让他们的计算机为他们朗读文本。我喜欢我可以在会议上用 Restructured Text 做笔记,并使用 Pandoc 将我的笔记转换为完全超链接的电子书,以便在我的飞机回家途中查看。

为什么选择开放格式?

首先,让我们确定本文将只关注开放文件格式,以及原因。电子书开放格式最明显的优势在于,开放格式可以转换为任何其他格式,这意味着您的书可以在任何设备上阅读。当您获得一种格式的书籍,而您的设备或操作系统 (OS) 只读取任何其他格式,但就是不读取那种格式时,技术就击败了自身。这种情况不会发生在基本级别的开放格式上。

开放格式还确保任何人都可以创建电子书。笔和纸几乎是通用的,因此如果电子书的格式是封闭的,那么我不如学习速记。

最后,我只对完全开放的格式感兴趣;有些格式“足够开放”可以从中转换,但又不够开放到任何操作系统都可以创建它们,反之亦然。这对我来说行不通,特别是作为 PowerPC Linux 用户,x86 二进制文件创建“某种程度上的开放”电子书对我没有任何用处。

在完成这些序言之后,让我们看看有哪些格式。


EPUB

无需拐弯抹角:EPUB 格式是自电子书诞生以来电子书领域发生的最好的事情。它很简单、轻巧、跨平台且用途广泛。它是通过结合功能完善的现有技术来构建新技术的开源理想的典范。EPUB 文件基本上是一个 HTML 文件集合,其中一些元数据在一个 zip 文件中。

这听起来可能很花哨和技术性,但制作 EPUB 可以像使用 Pandoc 的单行命令一样简单,或者从 Libre Office 导出。

这是我用来将会议记录转换为 EPUB 的命令

$ pandoc -f rst -t epub3 notes.rst \

-o allThingsOpen2015.epub

一个更复杂的命令,用于最近在线出版的书籍

$ pandoc -f markdown -t epub3 book.md colophon.md \

-N --epub-stylesheet=style.css \

--epub-metadata=metadata.xml

--epub-cover-image=./images/cover-front.svg \

--epub-embed-font=kabel.ttf \

--epub-embed-font=Nouveau_IBM.ttf \

-o slackermedia.epub

在紧急情况下,您甚至可以使用标准系统工具生成 EPUB。一个单行 mimetype 文件放置在 zip 容器的头部,将容器标识为 EPUB 文档,以及一个包含所有 HTML 资产和文件的目录,即可呈现一个可用的 EPUB 文件。适当的目录可能会更复杂,但这足以让您入门

$ echo "application/epub+zip > mimetype

$ zip -0Xq book.epub mimetype

$ zip -Xr9D book.epub META-INF/ OEBPS/

EPUB 格式很流行且得到很好的支持。许多设备都支持它,或者它们支持可以读取它的应用程序。Firefox 插件 EPUB Reader 允许在任何运行 Firefox 的设备上轻松访问 EPUB。FBReader 在计算机和移动设备上打开它们。在紧急情况下,EPUB 文件甚至可以解压缩并以原始 HTML 形式查看。

简而言之,EPUB 格式没有任何障碍。它是开放的、可访问的且功能强大。

优点

  • 使用 HTML 以及简单的开源技术来构建通用的电子书格式。可扩展、动态,并且能够处理 HTML 可以处理的大部分内容。
  • EPUB 使用标准 HTML 和 CSS 进行格式化,允许用户根据需要覆盖样式,这意味着字体、颜色和大小都可以根据用户的需要进行修改。
  • 通过开源 EPUB 阅读器应用程序,在许多电子阅读器设备以及大多数计算机和移动设备上得到良好支持。
  • 由于 EPUB 基于 HTML,因此易于转换。

缺点

  • 某些设备可能不支持 EPUB,需要转换后才能支持。

结论

EPUB 是电子书应有的格式,对我而言,它是衡量所有其他格式的标准。它在一个轻量级、开放且合理的容器中提供了一本内容丰富、易于阅读的书籍。


纯文本

最初的电子书格式是普通的旧 ASCII (尽管希望现在人们会选择 Unicode)。这是计算机领域最通用的格式;任何平台上的任何操作系统都可以读取它,并且任何文本处理器都可以从中转换。

优点

  • 纯文本可以由任何人创建,无需任何特殊工具或知识。
  • 纯文本是转换为其他格式的安全可靠的来源。
  • 大多数设备都支持查看纯文本,无论以何种方式;Android 设备可以在任何笔记或办公应用程序中查看纯文本,计算机有文本编辑器,电子阅读器通常在默认阅读应用程序中打开纯文本。甚至一些便携式音乐播放器 (以及任何加载了 Rockbox 的音乐播放器) 都可以查看纯文本。
  • 纯文本可以重排句子,以便内容动态调整到不同尺寸的屏幕。

缺点

  • 可以说纯文本实际上不是电子书格式。它无法从目录超链接到特定章节,它不支持图像等等。从某种意义上说,它没有利用电子书在使信息定位更快方面提供的任何点击式好处。
  • 您可以动态更改文本的布局以适应不同尺寸的屏幕,但如果作者在 80 个字符后硬编码换行符,那么无论您的阅读器如何调整,格式都将限制为每行最多 80 个字符,或者在不寻常的位置换行。

结论

可以肯定地说,虽然纯文本在未来具有持久的生命力,并确保跨设备的兼容性,但它不是电子书的理想格式。但是,只要文档的布局一致,纯文本就很容易解析为其他格式。为了确保格式的一致性,请考虑使用“标记”规则,例如restructured text (RST)


FictionBook

FictionBook (.fb2) 电子书是一种 XML 格式,它将整本书放在一个文件中,包括任何图像。因此,它不打算存储扫描文档(例如整本漫画书或历史传真的完整扫描件),而是作为一本主要基于文本的书籍,其中穿插着一张或几张图像。

由于是 XML,它继承了我们期望从电子书中获得的所有现代功能。它可以包含超链接、字体样式和复杂布局。它是原生动态的,因此它可以流畅地包裹文本以适应任何尺寸的屏幕。

生成 FictionBook 文件就像生成 XML 文件一样容易。它可以在任何文本编辑器中完成(或者如果您是受虐狂,可以使用大量的 echo 语句),电子阅读器将即时完成所有转换,以将书籍显示为易于阅读的文档。

由于是 XML,文件格式至少是结构良好的,并且很容易被计算机解析,甚至可以被人解析,如果人对 XML 标签视而不见的话。

优点

  • FictionBook 是一种通用的标记语言中的开放格式,所有内容都包含在一个文件中。
  • 富文本,包含图像、超链接和原生动态内容和文字换行。
  • 易于创建和转换,只要您熟悉 XML 及其相关工具链(例如 xmllintnxml-mode 等工具)。

缺点

  • 在专用电子阅读器设备上的支持很差。但是,如果您的设备运行 FBReader,那么您可以阅读 .fb2 文件。
  • 一本电子书/一个文件的传统可能会随着 .fb3 的出现而逐渐淘汰,.fb3 正朝着包含封面图像、书籍文件和元数据文件(如 EPUB)的 zip 文件发展。

结论

FictionBook 格式在英语电子书市场中并不流行,尽管它在某些语言中得到了支持,因此您可能没有机会在不专门寻找的情况下获得 .fb2 文件。

如果您碰巧遇到一个,或者如果您打算自己生成一个,那么它是否是适合您的“正确”选择完全取决于您使用的内容。如果您使用或乐于开始使用可以读取 .fb2 文件的应用程序,那么它是一种非常好的格式,它既自包含又健壮。


HTML

作为网络的语言,HTML 是一种强大的文档格式,具有超链接、动态文本流、样式、图像链接等功能。它似乎是电子书格式的理想选择,事实上,它已成为许多最流行的电子书格式(包括 EPUB)的基础。

HTML 作为一种格式,不仅简单易学,而且无处不在。您可以在任何平台上编写它,并且显然可以在任何平台上查看它。与 XML 相比,它既简单又简洁

<p style="color: #666;">

你好 <a href="https://open-source.net.cn/%3Ca%20href%3D"http://example.com">http://example.com">世界</a>。

<img src="https://open-source.net.cn/images/tux.png" />

</p>

HTML 可能易于编写和阅读,但事实证明它有一些缺点。您也许可以链接到图像,但您将它们存储在哪里?电子阅读器在处理目录作为书籍时往往表现不佳,因此图像的路径需要以某种方式保持完整。HTML 中的作品也往往被分成几个页面,因此一本 25 章的书籍可能有关联的 25 多个文件;您如何在电子阅读器中管理所有这些文件?

答案当然是,您不这样做。如果您从网络上下载了一系列 HTML 文档并想稍后随身携带,请尝试将 HTML 包装成您的电子阅读器可以视为电子书的格式。转换很简单,只要所有路径都正确(如果您在 Firefox 中查看装满 HTML 文件的文件夹,并且一切看起来都正确,那么您的路径是正确的),您就可以使用 Pandoc 从 HTML 进行转换。一个简单的例子,假设您的目标设备对 EPUB 感到满意

$ pandoc -f html -t epub3 index.html about.html \

chapter1.html colophon.html -o book.epub

优点

  • HTML 是网络的通用语言
  • HTML 易于编写和阅读。它支持动态和超链接文本、样式和图像。由于结构良好,因此易于从 HTML 转换或转换为 HTML。

缺点

  • 许多电子阅读器将不相关的文件和资产视为不同的文档。
  • 并非所有电子阅读器都支持。

结论

就文件规范而言,HTML 是一种很棒的格式,也是电子书的理想选择,但由于电子阅读器倾向于假设每本书一个文件,因此在兼容性方面存在问题。如果您碰巧有一个装满 HTML 的目录想要随身携带,请将其转换为合适的电子书格式以获得更好的兼容性。


PDF

PDF 文件格式的开发是为了提供旨在用于印刷页面的内容。它最初被认为是“印前”渲染器:用户可以期望从打印机中看到的数字版本的精确内容。

大概是因为缺乏更明显的选择,人们最终开始使用 PDF 作为分发几乎任何他们不希望其他用户直接编辑的文档的一种方式。

优点

  • 保留书籍的打印布局,无论它是否适用于数字屏幕。
  • 在大多数电子阅读器和设备上得到良好支持的格式。

缺点

  • PDF 专为打印而设计,不具有分辨率独立性,并且不能很好地适应屏幕尺寸。
  • 就转换而言,几乎是死胡同的格式。手动复制和粘贴底层文本可能是可能的(如果文本已嵌入),但否则您无法从 PDF 转换为另一种格式。
  • 可以渲染非常大的文件,具体取决于创建时使用的图像压缩选项。
  • 设备可能支持 PDF 格式,但无法以可读且方便的方式显示大多数 PDF。从图像类型支持到字体冲突,所有因素都可能阻碍内容是否被渲染。

结论

从某种意义上说,PDF 格式更适合传递样式而不是内容。PDF 往往体积大、效率低且分辨率特定。由于电子书的普及,已经开发了“重排”功能,尽管 PDF 必须在创建时写入了重排功能,但即使这样,也很少有设备支持该功能。

如果您有选择,请避免将 PDF 用于电子书。如果您自己生成内容,请使用除 PDF 之外的任何格式。如果您收到 PDF 但对此无权决定,并且在您的设备上阅读它时遇到困难(在内容上不断放大以通过显微镜镜头阅读句子在第 10 页左右之后会变得很吃力),请使用 pdftotext 从 PDF 中提取文本

$ pdftotext ~/book.pdf book-text.txt

或者 pdftohtml

$ pdftohtml ~/book.pdf book-html.html

这些是获取 PDF 内容的好方法,但结果(和可读性)各不相同。


事实是,将书籍从传统排版转换为数字格式并非易事。如果容易的话,古腾堡计划现在应该已经完成了。即使是扫描并通过光学字符识别运行的书籍也需要大量的清理,并且至少要检查一遍错误。

有些书籍无法完全转换为文本文档,因为它们不仅仅是文本文档。为了保存一些书籍,最好的解决方案是扫描每一页,然后将所有扫描件转储到某个容器中。

看起来这似乎是 PDF 的完美用例,并且为了兼容性,但如果您的电子阅读器功能特别丰富,或者您在计算机或移动设备上阅读电子书,那么您可能支持漫画书存档或 Djvu。

DjVu

DjVu 格式不仅是一种电子书格式,它也是一种压缩格式。DjVu 文件通常比 jpeg 文件更小,但质量相同。对于小型电子书,这种差异可能微不足道,但对于大型作品,它可能意味着 80mb 下载和 20mb 下载之间的差异。

不幸的是,在专用电子阅读器设备上几乎不存在 .djvu 支持。虽然它通常不是手机和计算机上的内置功能,但一些应用程序支持查看和创建 DjVu 文件,包括 djvulibre 软件包、Evince 文档查看器和 Android 上的 FBReader

优点

  • 比 jpeg 更好的压缩,用于印刷页面的传真副本,可嵌入文本;在功能上,它是 PDF 的更高效、开放和更简单的替代品。

缺点

  • 电子阅读器上不支持广泛。
  • 分辨率特定。

结论

一种文件大小和效率方面具有优势的良好格式,但由于支持有限,它可能不适用于日常使用。


漫画书存档

顾名思义,漫画书存档是一种旨在用于数字存储和消费漫画书和图形小说的格式。它同样适用于任何您没有文本或想要或需要以图形方式查看的书籍。

当然,这本身就具有与 PDF 相同的问题,即图形无法为您的电子阅读器屏幕动态重排,但格式本身非常开放,如果您有时间和耐心,则允许进行重组。

事实上,漫画书存档只不过是一个 .zip 或 .rar 文件夹,其中包含一系列图像(分别为 .cbz 和 .cbr)。电子书阅读器将该文件视为一本书,并按顺序显示图像,即时解压缩每个图像。

优点

  • 仅使用现有技术的开放格式。没有臃肿;一种非常干净的格式。
  • 在很大程度上对图像类型漠不关心(尽管您的电子阅读器可能并非如此),因此图像压缩级别是可调的。

缺点

  • 分辨率特定。

结论

作为存储和消费的格式,这是以数字方式存档漫画和扫描传真副本的理想方式。因为它只不过是一个压缩的图像目录,您甚至可以存储高质量的主版本作为主副本,并为您的设备创建低质量的“便携式”版本。


概述

电子书格式的难题归结为以下几点:有源格式,有用于消费的格式(通常由您的电子阅读设备支持的格式决定),还有供应商或分销商提供给您的格式。

不幸的是,这些并不总是相互一致的。

如果世界默认使用开放格式就好了,因为开放格式很容易转换,而且可以以编程方式生成,从而根据您的需求为您提供最佳选择。但情况并非总是如此,因此由您来决定哪种格式最适合您。

好消息是,尽管存在 DRM(供应商对书籍施加的数字限制),但转换通常是一种选择。获取您的内容,按照您需要的方式处理它,使其为您工作,并始终保留最开放的格式作为备份。

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时工作。

17 条评论

很棒的文章,Seth!我突然想到,纯文本最忠实于原始形式,因为它的缺点与纸质书相同。

谢谢!

我对纯文本的最大/唯一挫败感是格式不一致。只要纯文本一致,就可以对其进行解析并向上转换为 rst 或 markdown,然后再转换为 epub,这使原本简陋的格式符合现代电子阅读的便利性标准。

问题是当您获得带有令人惊讶的缩进和 ascii 艺术等花哨风格的纯文本时,然后就迫切地尝试将文本标准化为某种可解析的格式,但最终基本上是手动转换。或者您只是忍受纯文本、古怪的换行符等等。

我想这个故事的寓意是,作为内容创作者,我们永远不应该假设人们将如何消费交付物。对于每 7 个将使用电子阅读器的人来说,将有 3 个怪人使用手机、网络浏览器和 TI-85。

回复 作者 bcotton

不错的文章,但是如何将 HTML 文件(带有 css 和图像)转换为 EPUB 格式?我迄今为止使用 LibreOffice 和 writer2epub 的所有努力都失败了。结果在 FBReader 中显示为原始 HTML,其中包含所有标签等。

Pandoc 往往是我(以及从表面上看,Seth 的)用于在文档格式之间进行转换的首选应用程序。EPUB 仅支持 HTML 标签和 CSS 规则的子集,关于图像支持,许多专用电子阅读器仅限于 JPEG 支持(因此请避免使用 PNG 和 GIF)。

作为第二种选择,您也可以尝试 Calibre。它内置了一些基本的转换功能,如果我没记错的话,它可以解析 HTML。如果您无法启动并运行 Pandoc,那么这可能是一个不错的后备方案。

回复 作者 dru (未验证)

是的,我同意 Jason 的观点。Pandoc 使 HTML 转换为 epub 变得非常简单。

如果您的所有 html 都在一个文件中,那是最好的,但情况并非总是如此,因此您可能必须将 pandoc 指向每个文件...

假设是 Linux shell

$ pandoc -f html -t epub3 index.html preface.html chapeter1.html chapter2.html -N --epub-stylesheet=stylesheet.css --epub-metadata=metadata.xml --epub-cover-image=cover.jpg --epub-embed-font=liberation.ttf --epub-embed-font=Nouveau_IBM.ttf -o mybook.epub

样式表是可选的,元数据文件是您需要手动生成的文件。它不需要很复杂

$ cat metadata.xml
Foo 和 Bar 之书
Seth Kenlon

结果将是一个 epub,它在任何电子书管理软件中都显示为“Seth Kenlon”的“Foo 和 Bar 之书”,在您的文件系统中显示为“mybook.epub”。

我经常使用这种命令;我从网上拉取一个目录并将页面转换为电子书,以便我可以离线阅读。我正在以这种方式阅读 GNU Gawk 手册。
希望这有帮助。

回复 作者 Jason van Gumster

一篇很棒的文章,Seth。我还没有完全理解它。到目前为止,我只使用过 ePub 和 PDF。但是,这是一个很棒的资源,我正在与我可能尝试转换文件的教育技术朋友分享它。

郑重声明,我发现生成非常好的 epubs 最简单的方法是使用 RST 或 Markdown 作为输入格式,然后通过 pandoc 运行以转换为 epub。非常容易,学习曲线非常小。

回复 作者 Don Watkins

您为什么包含文本但不包含 RTF 或 ODT?两者都可以说与 txt 一样开放,并且它们提供了更多功能,而且,这三者都不是电子书格式

您确定 FB2 是开放格式吗?我以为它是专有的,但有免费提供的规范和工具。

感谢阅读本文!

关于 ODT
我没有包含 ODT,因为我没有想到要包含它。我喜欢使用 ODT 作为快速而肮脏的电子书格式的想法;很抱歉我遗漏了它!

关于电子书
在寻找术语“电子书”的定义时,不要过于沉迷于现代电子书市场。电子书在电子阅读器出现之前就已经存在了,我们中的许多人在任何人想到开发特殊格式之前就已经在电子阅读书籍(电子书/电子书/电子书)。因此,我认为是的,纯文本、RTF 和 ODT 如果以这种方式使用,都可以是电子书格式,就像手写稿件无论是否批量出版或精美装订,都是“书”一样。

关于 RTF
本文的初稿确实包含了 RTF,但我们选择不包含它,因为它的功能相当于更优雅的东西(如 .fb2),但规范更丑陋(将 RTF 中的“hello world”与 XML 中的“hello world”进行比较)。RTF 正被微软放弃,而且它从未开源(它受“开放承诺”约束),因此它作为“开放”文件格式的有效性值得商榷;程序员对某些东西进行逆向工程,直到微软承诺不会因此迫害他们,这与开发者出于让人们知道他们正在使用什么的目的而在线发布规范并不完全相同。

关于 fb2
是的,.fb2 是开放的。它是 XML 的模式,有点像 Docbook。没有进一步的“来源”或所有权声明需要“开放承诺”。完整的模式发布在网上 http://gribuser.ru/xml/fictionbook/2.0/xsd/FictionBook2.xsd,任何人都可以使用或修改(但是,如果您修改它,它就不再是 fictionbook,就像您更改 docbook 后,docbook 也不再是 docbook 一样)。如果是专有的,那么它的模式将不可用,但它可能可以从生成的 XML 源代码中进行逆向工程;但事实并非如此。该模式由开发者 Dmitry 发布,供所有人使用。

这对于模式来说是非常标准的做法,尽管我想关于模式如何获得许可的问题可能会成为法律极客 [不是我] 在某篇文章中感兴趣的主题。它的作者 Dmitry Gribov 拥有一个网站和电子邮件地址,可以为非常好奇的人提供进一步的澄清。

回复 作者 n hoffleder (未验证)

很棒的文章,Seth!

EPUB 的另一个优点是,如果您计划尝试销售 EPUB 文件(当然是您自己的写作/笔记),几乎所有供应商/分销商都会接受 EPUB(好吧...至少是 EPUB2)。他们可能会在后端自动转换为他们的封闭格式,因此您必须确保转换顺利进行,但在大多数情况下,它是非常无缝的。

“这回避了问题”

不,它没有。(去查一下这个短语)。

您假设我以古老的方式使用“beg”这个词!加入我的现代语法学家团伙,您也可以滥用无数古代短语。

回复 作者 n hoffleder (未验证)

我认为你遗漏了一些其他的选项,包括一个你实际上在顺便提及但没有明确指出为其中一个选项的。那就是 markdown(及其变体)。现在许多电子书阅读器应用都可以读取和显示它。

文章本身提出了(不是乞求)这个问题:“创建一个优秀的开源电子书工具链会是什么样的?” 一旦最终输出格式被定义,决定你想如何写作以及你要写什么会产生一系列有趣的选项。我闻到了另一篇文章的机会。 :-)

很棒的观点!我猜 markdown 风格格式的“问题”会是图片和其他包含项;它们在哪里被整齐地存储,以便在电子书阅读器渲染 markdown 文本时可用?但是如果没有包含项,那就没有问题,md 或 rst 或任何其他格式看起来都是一个很棒的选择。

开源电子书制作的工具链是我所知道的全部,所以我从未真正把它看作是文章的潜力。在 pandoc、docbook 和各种 XML 处理器、latex,甚至 Libre Office 之间,这可能真是一篇值得写的文章!

回复 ,作者是 sgtrock (未验证)

好文章,感谢与我们分享

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.