过 Amazon Kindle 官方商店购买电子书,可以轻松实现「下单买电子书 - 推送至 Kindle」,但仅仅依靠官方商店渠道获取的电子书数量可能还不足够,Kindle 用户选择从网上其他渠道下载回来的电子文件,大多数是 pdf、epub 格式,直接放在 Kindle 设备上,会面临格式不支持或者内容排版变形等问题。
为了解决以上的问题,我收集了几款本地工具和在线工具的解决方案,帮助大家轻松应对电子书格式转换,在 Kindle 上获得即点即开的阅读体验。
Kindle 设备目前原生支持 mobi、azw 和 azw3 三种电子书格式,其中 mobi、azw 是较早推出的格式标准,而 azw3 是在 2011 年 Kindle Fire 平板一并推出的格式,由于其支持 HTML5 和 CSS3 语法,最后输出的内容有着较好的排版支持效果。
对于电子书格式转换需求,下面收集了四款本地工具,有 Amazon 官方出品的 KindleGen、Kindle Comic Creator,也有最热门的本地电子书管理工具 Calibre,而 EasyPub、Kindle Comic Converter 和 ChainLP 解决了其他文档格式转换的问题。
KindleGen
KindleGen是一款亚马逊官方推出的电子书格式免费转换工具,主要功能是将 HTML、XHTML 或者 epub 文档转换成 Kindle 设备兼容的 mobi 格式。KindleGen 实际上是一款命令行工具,支持 Windows、Mac 和 Linux 平台,以将 epub 格式的《1984》转换成 mobi 为例子,具体使用步骤:
1.下载并解压 KindleGen 压缩包,由于亚马逊 官方页面暂时不支持中国区下载,建议大家在书伴页面找到百度网盘下载压缩包;
2.比如将压缩包解压到文件路径 D:\KindleGen
,打开 Windows 命令提示符,输入D:\KindleGen\kindlegen
,系统将反馈 KindleGen 的使用说明;
3.比如将《1984》电子书放在 D:\ebook
,命令行窗口输入cd /d D:\ebook
进入电子书所在的目录文件位置;
4.输入 D:\KindleGen\kindlegen 1984.epub
,转换成功后自动在 epub 源文件的目录位置生成 1984.mobi 文件。
另外还有一个更简便的方法,将 1984.epub 文件直接拖拽至 kindlegen.exe 应用程序图标上,KindleGen 工具会自动弹出转换的页面,并在源文件的位置下生成 mobi 文件。
Kindle Comic Creator
Kindle Comic Creator则是一款亚马逊官方专门为漫画作者和出版商推出的漫画转电子书的免费工具,适用 Windows、Mac 平台,支持将 JPG、PDF、TIFF、PNG 和 PPM 转换成 mobi 电子书。提前准备好几张示例图片后,KCC 使用步骤如下:
1.打开 KCC 主界面后,选择创建新图书,弹出创建窗口,按步骤填写「面板选择」和「元数据和设置」的选项,包括了图书定位、翻页方向、画布大小、封面图片和输出保存的位置;
2.完成基本信息输入后,进入图像添加的编辑界面,在左边栏的图书管理器中,图书设置和页面设置中提供了更详细的元数据和页面调整的选项,右边栏有 Kindle 设备预览效果;
3.选择菜单栏「文件 - 导出为 KF8 图书」输出生成 mobi 电子书文件(快捷键 F5
直接在制定目录生成转换文件)。
除了亚马逊官方出品的 KCC 软件外,ChainLP、Kindle Comic Converter也能够把漫画图片轻松转换成 epub、mobi 格式文档。
Calibre
Calibre是一款电子书管理工具神器,也提供了格式转换功能,支持 Windows、Mac 和 Linux 平台,甚至提供了便携绿色版本,我们通过内置的命令行工具 ebook-convert 或者图形界面完成各种电子书格式转换。
ebook-convert命令语法是:
ebook-convert input_file output_file [options]
参照 Calibre wiki 文档、 显示,input_file 支持输入的格式 azw4、chm、comic、docx、epub、fb2、html、mobi、pdf、txt 等格式,output_file 则支持输出 azw3、docx、epub、html、mobi、 pdf、txt 等主要格式。
输入如下命令,实现将 1984.epub 文件转换成 1984.mobi 文件格式。
ebook-convert 1984.epub 1984.mobi
图形界面。Calibre 主界面中选中书籍后,在工具栏选择「转换书籍」打开转换界面,接着在右上角的输出格式选项,选择希望输出的文档格式(支持输入格式参照 ebook-convert 命令行介绍部分 )。另外亚马逊近期推出较新的电子书格式 KFX,如果需要将 KFX 和其他格式互转的话,可以尝试安装 Calibre 插件 KFX Input 以及 KFX Output。
EasyPub
跟 Calibre 提供一站式电子书解决方案不同之处在于,EasyPub 提供功能相对单一,它是一款针对 TXT 转换成 mobi、epub 格式的免费工具,仅支持 Windows 系统,下载地址在书伴网 页面搜索即可。
在格式转换的设置标签页中,用户可以利用章节部分的调整选项,通过文档的章节规则生成较好的文件目录。
如果用户经常从网络中下载的文档以 TXT 格式为准,那么 EasyPub 这款纯粹单一的转换工具能够满足大部分需求。
除了以上四款本地工具外,在线工具同样能够满足电子书格式转换需求,其优势是免除了安装应用程序的繁琐操作,不占用本地空间资源,随用随打开在线页面。
Convertio
Convertio支持各类文档格式相互转换、OCR 识别功能,通过超链接、Dropbox 和 Google Drive 导入文件,注册账户支持最大 100MB 文件大小。最省心的地方在于,用户上传文件后,Convertio 将自动识别上传文件的格式,给出转换成对应格式的选项。在电子书格式转换中,Convertio 电子书转换支持输出 mobi、azw3、epub 常见格式,也支持转换成 lrf、snb、rb 等较少见的电子书格式。
Kindle 邮箱
Kindle 邮箱除了解决了文件推送到 Kindle 设备的问题外,还能够「曲线救国」解决 epub 格式在 Kindle 阅读器上阅读,只需要将 epub 文件格式手动改为 zip,再通过电邮方式推送到 Kindle 个人邮箱,亚马逊个人文档云存储将自动转换格式后推送到 Kindle 设备中,用户直接打开文档即可阅读。
或许 Kindle 吃灰的原因不在于电子书格式转换的问题,但以上推荐的六款工具可以很好解决大家从网上下载和制作的文档后,转换成 Kindle 设备支持阅读的格式,本地工具凭着更丰富的转换设置选项更细致地调整转换效果,在线工具则有着「用完即删、随用随开」的优势。希望这篇工具合辑让 Kindle 电子书格式转换的问题,不再成为大家阅读电子书的「绊脚石」。
spose.Words For .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件格式,并允许将Word文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
Aspose.Words for .NET官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载-慧都网
Aspose.Words无需Microsoft Word也可在任何平台上满足Word文档的一切操作需求。本文将与大家分享如何将文档转换为EPUB。
EPUB文档(电子出版物的简称)是基于HTML的格式,通常用于电子书分发。Aspose.Words完全支持这种格式,用于导出与大多数阅读设备兼容的电子书。本文介绍如何使用代码将简单的MS Word文档转换为EPUB。它还演示了使用Aspose.Words转换为EPUB后样本文档的样子。
此代码示例使用默认的保存选项将文档转换为EPUB。你可以从此处下载此示例的模板文件。
你可以通过将HtmlSaveOptions的实例传递给Document.Save方法来指定选项。模板文件的代码片段展示了其中的一些操作。此代码示例将文档转换为EPUB,并指定了保存选项。
接下来我们将回顾转换为EPUB格式的示例文档的效果。以下屏幕截图显示了主要功能。
下图显示了转换为EPUB后的文本格式功能。
下图显示了转换为EPUB后的文本格式功能。
下图显示了尽管表格很复杂,但转换后的表格呈现也不错。
即使是源文档中的复杂列表也可以很好地导出到EPUB。
转换后的图像效果。
此图显示了从源文档生成的目录,该文档作为带有超链接的内联文本导出。组成源文档中TOC的相同标题将导出到EPUB中的导航窗格以便于导航。
如果Aspose.Words生成的EPUB文档通过了验证,这意味着此文档遵守EPUB标准并且此EPUB文档没有错误。即使通过了验证也并不能保证每个设备或EPUB查看器都以完全相同的方式显示文档。但是,它确实也能使你的文档尽可能的接近预期。
下图显示了我们刚刚在其中一个验证服务上转换的文档的报告。
元数据是一种附加信息,例如作者姓名,标题,评论等,添加到文件本身内容中不可见的地方。 Word文档格式具有专用于此类元数据的特殊属性,并且也可以导出到EPUB文件。分销商和电子书商店经常要求元数据字段作为其搜索引擎的关键字,并为客户提供有关图书的信息。
下图显示了转换后的元数据
译自: https://opensource.com/article/18/10/book-to-website-epub-using-pandoc
作者: Kiko Fernandez-reyes
译者: jlztan
通过 Markdown 和 Pandoc,可以做到编写一次,发布两次。
Pandoc 是一个命令行工具,用于将文件从一种标记语言转换为另一种标记语言。在我 对 Pandoc 的简介 一文中,我演示了如何把 Markdown 编写的文本转换为网页、幻灯片和 PDF。
在这篇后续文章中,我将深入探讨 Pandoc ,展示如何从同一个 Markdown 源文件生成网页和 ePub 格式的电子书。我将使用我即将发布的电子书《 面向对象思想的 GRASP 原则 》为例进行讲解,这本电子书正是通过以下过程创建的。
首先,我将解释这本书使用的文件结构,然后介绍如何使用 Pandoc 生成网页并将其部署在 GitHub 上;最后,我演示了如何生成对应的 ePub 格式电子书。
你可以在我的 GitHub 仓库 Programming Fight Club 中找到相应代码。
我用 Markdown 语法完成了所有的写作,你也可以使用 HTML 标记,但是当 Pandoc 将 Markdown 转换为 ePub 文档时,引入的 HTML 标记越多,出现问题的风险就越高。我的书按照每章一个文件的形式进行组织,用 Markdown 的 H1 标记(#)声明每章的标题。你也可以在每个文件中放置多个章节,但将它们放在单独的文件中可以更轻松地查找内容并在以后进行更新。
元信息遵循类似的模式,每种输出格式都有自己的元信息文件。元信息文件定义有关文档的信息,例如要添加到 HTML 中的文本或 ePub 的许可证。我将所有 Markdown 文档存储在名为 parts 的文件夹中(这对于用来生成网页和 ePub 的 Makefile 非常重要)。下面以一个例子进行说明,让我们看一下目录,前言和关于本书(分为 toc.md、preface.md 和 about.md 三个文件)这三部分,为清楚起见,我们将省略其余的章节。
关于本书这部分内容的开头部分类似:
# About this book {-}
## Who should read this book {-}
Before creating a complex software system one needs to create a solid foundation.
General Responsibility Assignment Software Principles (GRASP) are guidelines to assign
responsibilities to software classes in object-oriented programming.
每一章完成后,下一步就是添加元信息来设置网页和 ePub 的格式。
我创建的网页的元信息文件(web-metadata.yaml)是一个简单的 YAML 文件,其中包含 <head> 标签中的作者、标题、和版权等信息,以及 HTML 文件中开头和结尾的内容。
我建议(至少)包括 web-metadata.yaml 文件中的以下字段:
---
title: <a href="/grasp-principles/toc/">GRASP principles for the Object-oriented mind</a>
author: Kiko Fernandez-Reyes
rights: 2017 Kiko Fernandez-Reyes, CC-BY-NC-SA 4.0 International
header-includes:
- |
```{=html}
<link href="https://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Gentium+Basic|Inconsolata" rel="stylesheet">
```
include-before:
- |
```{=html}
<p>If you like this book, please consider
spreading the word or
<a href="https://www.buymeacoffee.com/programming">
buying me a coffee
</a>
</p>
```
include-after:
- |
```{=html}
<div class="footnotes">
<hr>
<div class="container">
<nav class="pagination" role="pagination">
<ul>
<p>
<span class="page-number">Designed with</span> ❤️ <span class="page-number"> from Uppsala, Sweden</span>
</p>
<p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://www.hmttv.cn/uploadfile/2024/0807/20240807024446463.png" /></a>
</p>
</ul>
</nav>
</div>
</div>
```
---
下面几个变量需要注意一下:
这些只是其中一部分可用的变量,查看 HTML 中的模板变量(我的文章 Pandoc简介 中介绍了如何查看 LaTeX 的模版变量,查看 HTML 模版变量的过程是相同的)对其余变量进行了解。
网页可以作为一个整体生成,这会产生一个包含所有内容的长页面;也可以分成多章,我认为这样会更容易阅读。我将解释如何将网页划分为多章,以便读者不会被长网页吓到。
为了使网页易于在 GitHub Pages 上部署,需要创建一个名为 docs 的根文件夹(这是 GitHub Pages 默认用于渲染网页的根文件夹)。然后我们需要为 docs 下的每一章创建文件夹,将 HTML 内容放在各自的文件夹中,将文件内容放在名为 index.html 的文件中。
例如,about.md 文件将转换成名为 index.html 的文件,该文件位于名为 about(about/index.html)的文件夹中。这样,当用户键入 http://<your-website.com>/about/ 时,文件夹中的 index.html 文件将显示在其浏览器中。
下面的 Makefile 将执行上述所有操作:
# Your book files
DEPENDENCIES= toc preface about
# Placement of your HTML files
DOCS=docs
all: web
web: setup $(DEPENDENCIES)
@cp $(DOCS)/toc/index.html $(DOCS)
# Creation and copy of stylesheet and images into
# the assets folder. This is important to deploy the
# website to Github Pages.
setup:
@mkdir -p $(DOCS)
@cp -r assets $(DOCS)
# Creation of folder and index.html file on a
# per-chapter basis
$(DEPENDENCIES):
@mkdir -p $(DOCS)/$@
@pandoc -s --toc web-metadata.yaml parts/$@.md \
-c /assets/pandoc.css -o $(DOCS)/$@/index.html
clean:
@rm -rf $(DOCS)
.PHONY: all clean web setup
选项 - c /assets/pandoc.css 声明要使用的 CSS 样式表,它将从 /assets/pandoc.cs 中获取。也就是说,在 <head> 标签内,Pandoc 会添加这样一行:
<link rel="stylesheet" href="/assets/pandoc.css">
使用下面的命令生成网页:
make
根文件夹现在应该包含如下所示的文件结构:
.---parts
| |--- toc.md
| |--- preface.md
| |--- about.md
|
|---docs
|--- assets/
|--- index.html
|--- toc
| |--- index.html
|
|--- preface
| |--- index.html
|
|--- about
|--- index.html
通过以下步骤将网页部署到 GitHub 上:
你可以在 GitHub Pages 的网站上获得更多详细信息。
我的书的网页 便是通过上述过程生成的,可以在网页上查看结果。
ePub 格式的元信息文件 epub-meta.yaml 和 HTML 元信息文件是类似的。主要区别在于 ePub 提供了其他模板变量,例如 publisher 和 cover-image 。ePub 格式图书的样式表可能与网页所用的不同,在这里我使用一个名为 epub.css 的样式表。
---
title: 'GRASP principles for the Object-oriented Mind'
publisher: 'Programming Language Fight Club'
author: Kiko Fernandez-Reyes
rights: 2017 Kiko Fernandez-Reyes, CC-BY-NC-SA 4.0 International
cover-image: assets/cover.png
stylesheet: assets/epub.css
...
将以下内容添加到之前的 Makefile 中:
epub:
@pandoc -s --toc epub-meta.yaml \
$(addprefix parts/, $(DEPENDENCIES:=.md)) -o $(DOCS)/assets/book.epub
用于产生 ePub 格式图书的命令从 HTML 版本获取所有依赖项(每章的名称),向它们添加 Markdown 扩展,并在它们前面加上每一章的文件夹路径,以便让 Pandoc 知道如何进行处理。例如,如果 $(DEPENDENCIES 变量只包含 “前言” 和 “关于本书” 两章,那么 Makefile 将会这样调用:
@pandoc -s --toc epub-meta.yaml \
parts/preface.md parts/about.md -o $(DOCS)/assets/book.epub
Pandoc 将提取这两章的内容,然后进行组合,最后生成 ePub 格式的电子书,并放在 Assets 文件夹中。
这是使用此过程创建 ePub 格式电子书的一个 示例 。
从 Markdown 文件创建网页和 ePub 格式电子书的过程并不困难,但有很多细节需要注意。遵循以下大纲可能使你更容易使用 Pandoc。
via: https://opensource.com/article/18/10/book-to-website-epub-using-pandoc
作者: Kiko Fernandez-Reyes 选题: lujun9972 译者: jlztan 校对: wxy
本文由 LCTT 原创编译, Linux中国 荣誉推出
*请认真填写需求信息,我们会在24小时内与您取得联系。