Post

为漫画 MOBI 添加目录

总体思路

  1. 使用 KindleUnpack1把 mobi 文件解压分割。
  2. 使用 Kindle Comic Creator2(下简称KC2)打开 mobi8/OEBPS/content.opf 重制(可加目录),保存为 KF8 的 mobi 文件。因为 KC2 的输出为双模的 mobi,即里面既有 mobi 也有 azw3,所以体积为源文件的 2 倍或更多,故需再分解。
  3. 使用 KindleStrip3 把 2 步骤的输出文件去除冗余即可获得目标 mobi。

具体执行实例

Kindle Comic Creator 制作目录部分略麻烦,再次需要具体阐述。

PS:以下实例运行平台为 Windows 10。

1.KindleUnpack 解压

打开 KindleUnpack 工具解压,源文件:七龙珠完全版26-30本.mobi,体积 215 MB。解压目录为 C:\Users\Cotes\Desktop\WorkPath\unpack-out

17101700

2.KindleComicCreator 编辑

打开 KC2,通过打开一本书 → 选取输出目录下的 mobi8\OEBPS\content.opf,在 GUI 中修改每节的关键页面 label,删除多余页,以及改变内容排序。

原始页面排序:

调整后的页面排序:

小技巧:KC2 可以在查看工具栏漫画工具栏中,调整 设计 预览的大小,方便完整阅读图片。

编辑完毕,点击图书设置修改元数据,完毕后,执行构建构建并预览生产编译结果。

3.修改 toc.ncx 结构

使用文本编辑器打开 mobi8/OEBPS/toc.ncx,去除 <navMap> 自动生产多余的目录节点 <navPoint>,格式为 Page-{X},需要的话还可以改变章节的层级结构,如本例,初始是单层结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
...
<navMap>
  <navPoint playOrder="1" id="toc-1">
    <navLabel>
      <text>Vol_26</text>
    </navLabel>
    <content src="Text/part0001.xhtml" />
  </navPoint>
  <navPoint playOrder="2" id="toc-2">
    <navLabel>
      <text>Page-1</text>
    </navLabel>
    <content src="Text/part0000.xhtml" />
  </navPoint>
  <navPoint playOrder="3" id="toc-3">
    <navLabel>
      <text>Page-7</text>
    </navLabel>
    <content src="Text/part0006.xhtml" />
  </navPoint>
  <navPoint playOrder="4" id="toc-4">
    <navLabel>
      <text>No.375 比达、杜拉格斯出发</text>
    </navLabel>
    <content src="Text/part0007.xhtml" />
  </navPoint>
  <navPoint playOrder="5" id="toc-5">
    <navLabel>
      <text>Page-9</text>
    </navLabel>
    <content src="Text/part0008.xhtml" />
  </navPoint>
  ...
</navMap>
...

对应默认效果是:

2017101703

精简及改变为二级结构后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
...
<navMap>
  <navPoint playOrder="1" id="toc-1">
    <navLabel>
      <text>Vol_26</text>
    </navLabel>
    <content src="Text/part0001.xhtml" />
    <navPoint playOrder="4" id="toc-4">
      <navLabel>
        <text>No.375 比达、杜拉格斯出发</text>
      </navLabel>
      <content src="Text/part0007.xhtml" />
    </navPoint>
    <navPoint playOrder="19" id="toc-19">
      <navLabel>
        <text>No.376 比达充满自信</text>
      </navLabel>
      <content src="Text/part0236.xhtml" />
    </navPoint>
  </navPoint>
  ...
</navMap>
...

修改后的视图效果:

2017101704

4.KindlePreviewer 编译

mobi8/OEBPS/content.opf 拖进 KindlePreviewer 空白处,即可触发编译:

17101705

5.KindleStrip 去冗余

此时在上步生成的 mobi8/OEBPS/converted-content-opf 目录内,生成了一个 444 MB 的 mobi,

17101706

拷贝一个 KindleStrip 的 python 脚本进此目录:

17101707

按住 shift+ 右击,在此目录运行 cmd,执行 python 脚本,语法为:

1
kindleStrip.py  INPUT  OUTPUT

INPUT 替换为输入路径

OUTPUT 替换为输出路径

e.g., 本例 OUTPUT 为「七龙珠完全版 26-30 本[修].mobi」,执行如下:

17101708

最后可得到体积缩小一半的最终成品 mobi。

注意事项

  • KindleUnpack 必须使用 python 2.7.X,否则不能正常工作!
  • Calibre 转换过的 mobi 漫画都会出现白边,请不要使用其编辑漫画。

扩展话题

如何快速修改重置过的 mobi 文件目录?直接修改 mobi8\OEBPS\Text\nav.xhtml 文件,然后 mobi8\OEBPS\content.opf 拷贝到 KindelPreveviewer 编译即可。

相关资源

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.