如何以编程方式 Kindlize .HTML 或 .DOCX 或 .PDF 文件(使其成为 Kindle-ready)?

How can I programatically Kindlize an .HTML or .DOCX or .PDF file (make it Kindle-ready)?

经验观察使我得出结论,当我将书籍文件上传到 CreateSpace(印刷书籍)时,它们最好从 .pdf 文件呈现。 Kindle(电子书)格式,OTOH,作为 .docx 文件提供时效果更好。

尽管如此,它们仍然远非完美。我创建了一本仅包含文本的书 - 一种英文字体,然后是另一种字体,并为交替的 translated-into-Spanish 段落加粗。平装本看起来不错。它的显示方式如下:

不过,该文件的 Kindle 版本“比一袋屁股丑 9 倍”(或者至少比内布拉斯加州更平淡):

如您所见,段落之间没有分隔符(除了换行符 - 太棒了!),并且不保留西班牙语段落的粗体格式 - 甚至章节标题格式! Kindlizing 过程显然认为所有文本都是平等的 - 没有尝试特殊格式!

因此,由于 Kindle 渲染过程显然无法正常工作(当向他们提供我提供的用于创建图书文件的相同 PDF 时更糟糕——由于某种原因,渲染内容中缺少部分内容),有没有一种方法可以让我以编程方式(在 C# 中)修改文件(HTML、DOCX 或 PDF),使呈现的 Kindle 文件看起来像平装书(保留段落分隔符和粗体格式)?

更新

我下载了 Calibre(也就是试过了),然后 Google 屏蔽了它,说天塌了,Calibre 会毁了我的浏览体验。 Dadburn 它,如果这是正版软件,为什么 Google 阻止它?!?

更新 2

我尝试使用 Firefox 下载 Calibre,但是,虽然没有错误消息,但它根本无法下载文件。所以也许它也阻止了它,但是 "silently."

kindlegen 是亚马逊的工具,用于获取 HTML 之类的输入并将其转换为 MOBI 文件。我们在过去的 Rails 项目中使用过它并取得了很大的成功,您可以随时 shell 到命令行 运行 它。

Calibre 是一种第三方工具,可以接收更多格式(PDF、EPUB 等)并输出更多格式。这是一款绝对合法的工具,具有非常有用的命令行界面 (ebook-convert)。

对于我们的项目,我们无法在 CentOS 服务器上安装 Calibre,因此我们最终只使用了 kindlegen 并转换了 HTML 文件。实际上,具体来说,我们将包含各种图像的 OPF 文件、html 文件、toc.ncx 文件等一起创建为最终发布的 .mobi 文件。

您可能还想查看 Kindle 支持的字体,并确保正确指定了您的字体和样式。亚马逊的 This PDF 很好地描述了 CSS 是有效的。