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

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

Opensource.com

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

为什么选择电子书?

电子书很棒。我使用它们的时间比专用阅读器存在的时间要长得多。

我喜欢电子书使我能够随身携带多卷文本,而无需实际承担多沓纸的重量。 当然,我可能不会在杂货店排队时真正阅读儒勒·凡尔纳的全部作品,但是知道我拥有它们以防万一会让我感到欣慰。 我还喜欢它们使我能够找到我最喜欢的引言或段落的能力,以及视力有限的读者可以放大文本以便他们可以阅读,或者完全失明的读者可以让他们的计算机将文本读给他们听。 我很高兴能够在会议上以重构文本的形式做笔记,并使用 Pandoc 将我的笔记转换为完全超链接的电子书,以便在我的飞机上阅读。

为什么要开放?

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

开放格式还确保任何人都可以创建电子书。 纸和笔非常普遍,因此,如果电子书的格式是封闭的,那么我最好学习速记。

最后,我只对完全开放的格式感兴趣;有些格式“足够开放”可以从中转换,但不够开放以至于任何操作系统都无法创建它们,反之亦然。 这对我不起作用,尤其是作为 PowerPC Linux 用户,用于创建“某种开放”电子书的 x86 二进制文件没有任何用处。

排除这些开场白之后,让我们看一下有哪些格式。


EPUB

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

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

这是我用来将会议记录转换为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。 放置在zip容器头部的单行mimetype文件,将容器标识为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可以处理的大多数内容。
  • 通过使用标准HTML和CSS进行格式化,EPUB允许用户根据需要覆盖样式,这意味着用户可以根据需要修改字体,颜色和大小。
  • 通过开源EPUB阅读器应用程序在许多电子阅读器设备以及大多数计算机和手机上得到很好的支持。
  • 由于EPUB基于HTML,因此很容易转换。

劣势

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

结论

EPUB是电子书应有的格式,对我而言,它是衡量所有其他格式的标准。 它以轻巧,开放和明智的容器提供内容丰富,易于阅读的书籍。


纯文本

最初的电子书格式是纯旧的ASCII(尽管希望今天可以选择Unicode)。 这是计算中最通用的格式; 任何平台上任何操作系统都可以读取它,并且任何文本处理器都可以从中进行转换。

优势

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

劣势

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

结论

可以肯定地说,虽然纯文本可以持久地适应未来,并确保跨设备的兼容性,但它不是电子书的理想格式。 但是,只要文档的布局一致,就可以轻松地将纯文本解析为其他格式。 为了确保格式的一致性,请考虑使用“标记向下”规则,例如重组文本(RST)


FictionBook

FictionBook(.fb2)电子书是一种XML格式,可将整本书(包括所有图像)放置在一个文件中。 因此,它并非旨在存储扫描的文档(例如整本漫画书或历史传真的完整扫描),而是主要基于文本的书籍,其中包含一个或几个图像。

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

生成FictionBook文件与生成XML文件一样容易。 可以在任何文本编辑器(或很多echo语句,如果您是受虐狂)中完成,并且eReader将即时完成所有转换,以将该书显示为易于阅读的文档。

作为XML,文件格式至少是结构良好的,并且很容易被计算机解析,甚至被对XML标签视而不见的人解析。

优势

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

劣势

  • 专用电子阅读器设备上的支持不足。 但是,如果您的设备运行FBReader,则可以阅读.fb2文件。
  • 一种书/一个文件的传统可能会随着.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可能易于编写和阅读,但它也存在一些弱点。 你可以链接到图像,但图像存储在哪里? eReader通常难以将目录视为书籍,因此图像的路径需要保持不变。 此外,一个HTML作品通常会被分成多个页面,因此一本包含25个章节的书籍可能会有超过25个相关文件; 如何在eReader中管理所有这些文件?

当然,答案是你不能这样做。 如果你从网上下载了一系列HTML文档,并想随身携带以备日后使用,请尝试将HTML包装成你的eReader可以视为电子书的格式。 只要所有路径都正确(如果你在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是一种非常棒的格式,并且非常适合电子书,但由于eReader倾向于假设每本书一个文件,因此在兼容性方面存在问题。 如果你碰巧有一个装满HTML的目录,并且想随身携带,请将其转换为适当的电子书格式以获得更好的兼容性。


PDF

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

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

优势

  • 保留了书籍的打印布局,无论它是否适用于数字屏幕。
  • 大多数eReader和设备都支持的格式。

劣势

  • 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下载之间的差异。

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

优势

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

劣势

  • 在电子阅读器上未得到广泛支持。
  • 特定于分辨率。

结论

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


漫画书存档

顾名思义,漫画书存档是一种用于漫画书和图形小说的数字存储和消费的格式。 它同样适用于你没有任何文本的书籍,或者你想要或需要将其视为图形的书籍。

当然,这本质上与PDF存在相同的问题,即图形无法为你的电子阅读器屏幕动态地重新包装自身,但格式本身非常开放,如果你有时间和耐心,则允许进行重组。

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

优势

  • 仅使用现有技术的开放格式。 没有膨胀; 一种非常干净的格式。
  • 主要对图像类型漠不关心(尽管你的电子阅读器可能不是),因此图像压缩级别是可调的。

劣势

  • 特定于分辨率。

结论

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


概述

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

不幸的是,这些并不总是相互对齐的。

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

好消息是,在不考虑DRM(供应商对书籍施加的数字限制)的情况下,转换通常是一种选择。 获取你的内容,按照你需要的方式对其进行处理,以便它可以为你工作,并且始终将最开放的格式作为备份。

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

17 条评论

很棒的文章,Seth! 我认为纯文本最能体现原始形式,因为它的缺点与纸质书籍相同。

谢谢!

我对纯文本的最大/唯一不满是格式的不一致。 只要纯文本是一致的,就可以对其进行解析并将其升级转换为rst或markdown,然后再转换为epub,从而使原本不起眼的格式符合现代电子阅读的便利标准。

问题在于,当你获得带有令人惊讶的缩进和ascii art等内容的精美风格化纯文本时,然后就需要拼命地尝试将文本标准化为某种可解析的格式,但最终它基本上是手动转换。 或者你只是接受带有古怪换行符的纯文本。

我想这个故事的寓意是,我们作为内容创作者,绝不应该假设人们将如何消费交付物。 对于每7个将使用电子阅读器的人,将会有3个怪人使用手机、Web浏览器和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

结果将是一个出现在任何电子书管理软件中为“Seth Kenlon”的“Foo和Bar之书”,以及在你的文件系统中为“mybook.epub”的epub文件。

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

回复作者:Jason van Gumster

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

就我而言,我发现制作非常好的 epub 最简单的方法是使用 RST 或 Markdown 作为输入格式,然后通过 pandoc 将其转换为 epub。非常简单,学习曲线也很小。

回复 ,作者:Don Watkins

为什么您包含了 text 格式,却没有包含 RTF 或 ODT?两者都和 txt 格式一样开放,并且它们提供了更多的功能。此外,这三种格式都不是电子书格式。

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

感谢您阅读这篇文章!

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

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

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

关于 fb2
是的,.fb2 是开放的。它是 XML 的一种模式,有点像 Docbook。没有进一步的“来源”或所有权声明需要“开放承诺”。完整的模式发布在 http://gribuser.ru/xml/fictionbook/2.0/xsd/FictionBook2.xsd 上,任何人都可以使用或修改(但是,如果您修改它,它就不再是 fictionbook,就像如果您更改 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本作品采用 Creative Commons Attribution-Share Alike 4.0 International License 授权。
© 2025 open-source.net.cn. All rights reserved.