修复 AZW3 电子书无法标注句子段落的问题

Kindle 伴侣交流群(四)中的小伙伴 @龙卷风 反馈了一个问题。他把一本电子书“古文观止译注.azw3”拷贝到 Kindle 中后,无法标注句子或段落。具体表现为,选中某句内容或某个段落后,高亮部分闪一下就消失,不能调出标注菜单。如下面的视频演示:

▲ 修复前

由于这种情况仅在个别的 azw3 格式电子书中出现,可以排除是 Kindle 系统引起的。出现这种情况的原因,很可能是制作方制作的电子书不符合亚马逊的电子书规范标准,从而导致 Kindle 出错。

这里不深究问题细节,仅提供解决方案。解决思路为——重新转换一下。如果你想保留原始排版,可以用 KindleUnpack 把 azw3 格式电子书拆解为源文件,用亚马逊的官方电子书转换工具 KindleGen 然后把源文件重新转换一遍。如果对稍微改变原始排版不那么敏感,也可以使用 Calibre 直接转换。

方法一:用 KindleGen 转换

这种方法虽然稍显麻烦,但是可以保留 azw3 格式电子书的原始排版。下面就以电子书“古文观止译注.azw3”为例,简单过一遍操作步骤,在开始之前请先准备好 KindleUnpack教程)和 KindleGen教程)两款软件,如果不会使用软件可先参考相应教程:

  1. 用 KindleUnpack 把电子书“古文观止译注.azw3”拆解成源文件;
  2. 拆解后得到一个名为“古文观止译注”的文件夹(和拆解电子书的文件名相同),在该文件夹下的路径 mobi8/OEBPS 中找到一个名为“content.opf”的文件;
  3. 打开命令提示符(或终端),输入下面的 KindleGen 命令将电子书源文件转换成 mobi 格式:
    • Windows 系统请输入:kindlegen.exe content.opf
    • Mac OS X 系统请输入:/users/你的用户名/desktop/kindlegen content.opf
  4. 稍等片刻即可在“OEBPS”文件夹内看到修复好的电子书文件“content.mobi”,可将其重命名一下。

* 注意,KindleGen 转换出来的电子书是 KF8 标准的 mobi 格式,等同于 azw3 格式,只是后缀名不一样(azw3 格式是亚马逊私有格式不公开)。如果你是强迫症患者,非想要 azw3 格式,可以用邮箱把生成的 mobi 格式推送到云端,亚马逊服务器会把这个 mobi 文件转换成 azw3 格式。

▲ 修复后

方法二:用 Calibre 转换

除了上面那种较为原生的方法,还有一个更为简单的方法,那就是用 Calibre(教程)把出问题的 azw3 格式电子书重新转换一遍。这种方法的缺点是会导致转换后的排版发生轻微变化,如果你对改变原始排版没那么敏感可以采用这种方法。需要注意的是,为尽可能保证排版不丢失,需要选择 azw3 格式,如果选择 mobi 格式则需要在“MOBI 输出”中把“MOBI文件类型”更改成为“both”。

这样,修复后的电子书就可以正常标注电子书句子或段落的内容了。如下面的视频演示:

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 3 条评论

  1. 显示错误
    Error(opfparser):E20004: the id in the spine does not match any item in the manifest: x_ncx
    这是哪一步有问题呢

    • 哎哎呀 您好。错误提示的意思是“Spine 中的 ID 与 manifest 中的任何项均不匹配:x_ncx”。请检查一下 opf 文件中 <spine> 标签内,有没有 x_ncx 这个 ID?有的话,可以删掉它,或在 <manifest> 中添加一条修复它。

  2. (打开命令提示符(或终端),输入下面的 KindleGen 命令将电子书源文件转换成 mobi 格式:
    Windows 系统请输入:kindlegen.exe content.opf

    稍等片刻即可在“OEBPS”文件夹内看到修复好的电子书文件“content.mobi”,可将其重命名一下)
    不行啊,难道是因为我不懂的用KindleGen 的原因?
    倒是用 KindleUnpack 把电子书“***.azw3”拆解成源文件在mobi8文件夹里发现一个EPUB文件,
    我把这个放在C:\KindleGen文件夹
    再直接把它拖到KindleGen.exe 然后就成功了…..