我有一个相对较大的 epub 文件,其中包含一个目录,而我只对其中的一小部分页面感兴趣。(更具体地说,这是一个 rpg 的完整咒语目录,我只想保留我的角色学到的或可以学到的咒语)。
是否有任何工具可以轻松删除页面并从目录和其他链接中删除已删除的页面?
到目前为止,我能看到的最简单的方法是用 calibre 将 epub 转换为 html,然后使用一个巨大的 bash(sed)脚本来修改所有 html 文件中所有页面之间的链接(这意味着每个章节的目录,甚至翻页链接)。
有没有更好的程序可以做到这一点?
非常感谢!
答案1
经过一段时间的阅读和尝试,我发现任何转换为 html 的操作都会使情况变得更糟。阅读有关如何实际构建 epub 的内容,可以得出以下步骤:
- 解压 epub 文件(它是一个有效的 zip 文件,只是后缀不同)
- 里面有所有章节的
*.xhtml
文件和两个重要文件content.opf
和toc.ncx
toc.ncx
可以识别使用不需要的 xhtml 文件(navPoint
然后删除不需要的部分)content.opf
包含一个manifest
和一个spine
部分。- 在清单部分中,每个文件都分配有一个 ID。这些 ID 在书脊部分中的顺序就是章节文件在书中出现的顺序。
- 从书脊部分删除相应的行,该章节就消失了。
- 然后,您可以从清单中删除该行并删除 xhtml 文件。没有这个步骤一切都会正常,但它只是无用的负担。
- 再次压缩并将后缀改为epub。
这些步骤对我来说足够好编写脚本,所以我的问题解决了。