KindleStrip:大幅精简压缩 mobi 文件体积 – 书伴

您所在的位置:网站首页 pdf和mobi漫画 KindleStrip:大幅精简压缩 mobi 文件体积 – 书伴

KindleStrip:大幅精简压缩 mobi 文件体积 – 书伴

2024-06-29 14:14| 来源: 网络整理| 查看: 265

kindlestrip 是一款精简 mobi 格式电子书的小脚本。使用 KindleGen 或 Kindle Comic Creator、Kindle Previewer 之类的官方电子书转换软件转换的 mobi 格式电子书,使用 KindleUnpack 拆解后可以看到一个压缩文件 kindlegensrc.zip,这就是 mobi 文件内含的源文件存档。

该文档是转换前的源文件的打包存档,仅供调试之用,大小和转换前的 epub 文件相同,几乎占 mobi 文件大小的一多半。如果是个人使用,而不是上传发布到 KDP(Kindle出版服务)包含一份源文件是没有必要的,kindlestrip 的作用就是将 kindlegen 生成的 mobi 中这部分删除以求更小的文件体积,精简后的文件仅仅是去除掉了对于个人用户来说冗余的源文件,对电子书的阅读没有丝毫影响。

一、脚本下载

KindleStrip 是用 Python 语言写成的,所以必须得有 Python 环境的支持。如果你使用的是 Windows 系统且没有安装 Python 的话,请先去 Python 官网下载并安装 Python,再下载本脚本使用。如果您使用的是 macOS 系统,因为系统自带 Python 就不用另外安装了,可直接下载脚本使用。

脚本下载:kindlestrip_v136.py.zip | 脚本发布页下载

另外,如果你使用的系统是 macOS 或 Linux,也可以运行“终端”运行下面的命令直接安装。

pip install kindlestrip

如果你使用的系统为 Windows 也可以下载下面这个批处理脚本批量精简 mobi 文件。

批处理脚本下载:kindlestrip_v136_batch.zip

使用方法为,将需要处理的电子书文件放入 temp 文件夹,双击运行 batch.bat 脚本后,处理完成的电子书会自动放入 result 文件夹中。

二、脚本使用

脚本的使用很简单。为了方便说明,下面步骤中的 kindlestrip 和 mobi 文件都是放在同一目录下。

1、Windows 系统

如果你使用的是 Windows 系统,先运行“命令提示符”,先用 cd 命令切换到 kindlestrip 脚本和 mobi 文件所在的目录,然后运行下面的命令。请注意,在这一行命令中,kindlestrip_v136.py 就是下载到的脚本名称;infile.mobi 是精简前的文件名,如果文件名含有空格,请使用单引号或双引号包裹住;outfile.mobi 是精简后的文件名,名字随便起,如果文件名包含空格同样要使用引号。

kindlestrip_v136.py infile.mobi outfile.mobi

如果想要批量精简 mobi 格式电子书文件,请先把下载到的 kindlestrip_v136_batch.zip 文件解压缩,可以看到 temp 和 result 两个文件夹,可以把需要处理的 mobi 格式电子书放到 temp 文件中,然后运行 batch.bat 批处理文件,精简后的 mobi 文件将会存放在 result 文件夹中。

2、Mac OS X 系统

如果你用的是 Mac 系统,并且使用的是下载的脚本,可先运行“终端”,使用 cd 命令切换到 kindlestrip 脚本和 mobi 文件所在的目录,然后运行下面的命令即可。如果文件名包含空格要使用引号

python kindlestrip_v136.py infile.mobi outfile.mobi

如果是使用 pip 命令安装的,则更简单,切换到 mobi 文件所在的目录,直接运行下面的命令即可。

kindlestrip infile.mobi outfile.mobi 三、脚本提示

如果 mobi 文件含有冗余文件,则会出现类似下面的提示:

SRCS section number is: 43 SRCS section count is: 1 SRCS length is: 0x10cfa done

如果 mobi 文件不含有冗余的源文件,则会显示如下提示:

Error: File doesn't contain the sources section. 四、常见问题

如果出现类似下面这样的提示,可能是电子书自身有问题:

SRCS section number is: 2921 SRCS section count is: 4 SRCS length is: 0x1d22a9c Error: SRCS section num does not point to SRCS.

这里提供两种解决方法:

一种是先使用 KindleUnpack 将电子书拆解为源文件,再用如下所示的带有不附加源码选项的 KindleGen 命令将源文件重新转换成 mobi 格式电子书文件。

indlegen content.opf -dont_append_source

另一种是修改 KindeStrip 源码让其忽略该错误。将脚本文件 kindlestipt.py 中的如下两行代码注释掉:

if self.datain[self.srcs_offset:self.srcs_offset+4] != 'SRCS': raise StripException("SRCS section num does not point to SRCS.")

这种方法通过对有限的几本电子书时未发现异常。但是,如果对于你来说出问题的电子书是个例,建议不要使用这种方法,因为不知道去掉脚本中的这个条件会不会影响对确实有问题电子书的辨别。

五、其他

在使用 KindleGen 生成自制电子书时,可以通过添加一个参数 -dont_append_source 来禁止往生成的 mobi 文件中附加源文件。这样生成的 mobi 文件就不再需要 kindlestrip 来辅助删除冗余源文件了。

具体命令如下所示(如果你还不会使用 KindleGen 请点击这里查看具体操作步骤):

kindlegen -dont_append_source xxx.opf

© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/240.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3