为何推送 KF8 标准 MOBI 电子书不显示封面

Kindle 近几次固件更新带来了几个很给力的新功能,比如“字体加粗”和“自定义字体”,但是这些新功能仅支持 KF8 标准的电子书,所以有很多想享用新特性,又喜欢使用亚马逊的“Kindle 个人文档服务”的小伙伴,会特意先把 MOBI 电子书转换成 KF8 标准再推送到云端,这时很多小伙伴就会遇到一个问题,当把 KF8 标准的 MOBI 电子书推送到 Kindle 后,封面却不显示了,这是怎么回事呢?

我们可以简单地把 MOBI 格式电子书分为两种标准。一种是旧标准,可以称之为 MOBI7,此标准只支持简单的 HTML,所以也仅能实现简单的排版,与其类似的格式还有 AZW、MOBI、PRC 等。另一种是新标准,可以称之为 KF8 或 MOBI8,此标准新增了对 CSS 样式表的支持,以及之后亚马逊对此标准的不断扩展,使得电子书有了更加丰富的视觉效果,与其相近的格式还有 AZW3、MOBI、KFX 等。

由于新旧两种标准的 MOBI 格式的后缀名都是 .mobi,通常我们无法仅凭后缀名就能直接看出电子书文件是新标准还是旧标准,但是当我们使用 KindleUnpack 把电子书拆解成源文件后,就会发现旧标准的电子书文件只有一个 mobi7 文件夹,而新标准的电子书文件则会多出一个 mobi8 文件夹。

另外我们还可以通过经亚马逊服务器转换同步到 Kindle 的电子书文件格式来判断你所推送的 MOBI 格式是哪一种标准。如果是旧标准会被自动转换成 AZW 格式,如果是新标准则会被转换成 AZW3 格式。

当我们把新旧两种标准的 MOBI 电子书分别通过邮箱推送云端并同步到 Kindle 后,会发现有不同的变现:旧标准的 MOBI 电子书可以正常显示封面(通过 USB 数据线拷贝则不显示),新标准的 MOBI 电子书却无法正常显示封面(通过 USB 数据线拷贝则显示)。之所以会出现这种情况,很可能是因为 Kindle 设备在读取不同标准的 MOBI 格式电子书时的机制不通导致的,但是更进一步的细节不得而知。

从所能找到的资料和讨论来看,有这样一种说法:正常情况下,Kindle 会通过电子书元数据中的 ASIN(亚马逊标准识别号码)从亚马逊云端拉取与之相对应的电子书封面。但是对于推送到云端的 MOBI 电子书就没有了这种优待,即便你制作(或转换)的 MOBI 电子书的元数据中含有正确的 ASIN,推送到云端后,也会被亚马逊服务器重写成是一串随机字符串,由于在亚马逊云端并没有与被重写的 ASIN 相对应的书目,自然 Kindle 设备也就没办法获取到封面,从而造成不显示封面的情况。

那这个问题有办法解决吗?答案是没有根除方案。因为亚马逊服务器和 Kindle 设备读取封面的机制我们都没有办法改变,除非亚马逊 Kindle 团队着手解决,或有人发现了 Hack 方法,作为用户对此也只能是无可奈何。不过因为这个问题着实让人不爽,还是有人提供了补救方案,虽然比较麻烦也不怎么完美。

补救方案有两种。一种是手动把封面释放出来让 Kindle 读取,可以用 ExtractCoverThumbs 这款软件实现。另一种是更改同步到本地的电子书文件的元数据,将其中被篡改成随机字符串的 ASIN 改成正确的,从而让 Kindle 能正常拉取与之相对应的书目封面,这可以用 MobiMetaEditor 这款软件实现。这两种方案都需要先把推送到云端的电子书同步到 Kindle 本地再把 Kindle 设备连接到电脑进行操作,书楼实测了一下,感觉不太好用,所以不在这里列出两款软件的使用步骤了,感兴趣的可以了解一下。

在此问题得不到有效解决之前,书楼的建议是,对于推送到云端的电子书在 Kindle 中显示封面的问题,可以根据自己的具体需求做一下取舍。如果你觉得为了享受到标注、笔记、页码等同步功能,必须使用个人文档服务,同时还想要电子书有比较好的排版,能使用自定义字体、加粗字体等功能,那就需要忍受不显示封面的缺憾,或把视图更改为列表模式避开封面模式。如果你觉得排版、自定义字体、加粗功能等都是浮云,只要能使用同步功能和显示封面就行,那就把电子书转换成 MOBI7 标准再推送即可。

当然还有个根治的方法,就是反馈给 Kindle 团队,让他们解决这个问题。中亚 Kindle 团队的反馈邮箱是 kindle-feedback@amazon.cn,美亚 Kindle 团队的反馈邮箱是 kindle-feedback@amazon.com。

对本文提到的问题,如果你有比较好的解决方案,欢迎留言分享。

————-

参考资料:

未经允许不得转载:书路 » 为何推送 KF8 标准 MOBI 电子书不显示封面

赞 (0) 打赏