Calibre 使用教程之把合集电子书拆分成单本
很长一段时间以来,书伴从留言区或交流群都收到过小伙伴们提出的同一个问题:如何把由多本电子书组成的合辑拆分成单本?对于合集形式的电子书,其好处是价格比较实惠,商家也乐得以此获取较好的销量。不过这同时也给有些小伙伴带来了困扰,原因不尽相同,有的是因为合集电子书体积太大不方便存放,有的是因为不同类型的书放在一起不方便阅读。所以有了把多本电子书拆分成单本的需求。
Kindle 电子书的内容是主要是由 XML、HTML 和 CSS 组成,所以肯定是可以拆分的,但是如用纯手工实现较为繁琐。之前书伴曾在一条留言的回复中提到过这种方法,需要用到的软件是 KindleUnpack、KindleGen 和代码编辑器。思路是:首先使用 KindleUnpack 把合订本拆解成源文件,然后把源文件复制成若干份(里面有几部就复制几份),使用代码编辑器分别编辑 opf 和 ncx 文件,把除了想要保留的索引删除。然后修改一下每一部书的元数据,比如标题、封面。接着再按照索引把 Text 文件夹下的不需要的 HTML 文件删除。最后使用 KindleGen 分别把每个部分通过 opf 文件生成 mobi 文件。
这种方法效率实在是太低,不仅需要熟悉基本的 HTML 和 CSS 知识,在实际搬砖的过程中也不可避免的会出错,所以书伴并没有写一篇文章介绍此方法。那有没有高效率的处理方法,可以快速的把合集电子书拆分成单本形式的电子书?答案是肯定的,本文为小伙伴们介绍的就是个不错的方法。
此方法其实依赖一个名为 EpubSplit 的 Calibre 插件,从插件名可以看出,这是用来处理 EPUB 格式电子书的插件,所以对于 Kindle 用户来说,在开始处理常见的 AZW3 或 MOBI 格式的合集电子书前,需要先将其转换成 EPUB 格式,好在这种转换不会造成太大的损失,所以也是可以接受的。
这款插件的使用比较简单,下面书伴就从安装到处理的过程快速理顺一遍,好让小伙伴们看完即可上手使用。当然,在开始下面的步骤之前要确保你的系统安装了 Calibre 这款软件。
一、安装 EpubSplit 插件
Calibre 的插件安装有两种方式,一种是直接在内置的可选插件中直接安装,另一种是通过加载插件的 ZIP 包安装,因为我们要使用的 EpubSplit 插件可以直接安装,所以建议采用此种方式。
打开 Calibre 软件,点击打开菜单中的“首选项”,在“高级选项”那一栏中点击“插件”,打开插件管理界面。点击底部的【获取新的插件】,打开获取“用户插件”的界面,在“插件过滤列表”中选择“未安装”,在“按名称过滤”的输入框中出入插件名“EpubSplit”即可找到这款插件,双击并确认安装,按照提示重启一下 Calibre 即可成功安装。Calibre 再次打开时即可看到“工具栏”右侧出现了一个“EpubSplit”图标。
二、一键拆分合集章节内容
把合集电子书拖入 Calibre 书库,通过右键菜单的“转换书籍 -> 逐个转换”将其转换成 EPUB 格式。待转换完毕后,选中这本电子书,点击“工具栏”上的“EpubSplit”图标,即可弹出如下所示的界面:
在此界面中可以看到,电子书中的章节条目都被逐条列出,你所要做的就是选中要拆出电子书的所有章节条目,然后点击下方的【New Book】按钮,插件就会把它们提取出来生成单本电子书。
需要注意的是,选择章节的时候,判断两本书的分界,要以同一个 HTML 文件名为准,比如列表中相邻的 text/part0019.html
和 text/part0019.html#I3QM0-389xxxxxx
应该是归在同一本书中的。另外,可以忽略列表中第一条 titlepage.html,一般这是一个封面,而 Kindle 电子书并不需要页面式的封面。
点击【New Book】后会提示你新生成电子书的元数据会用合集电子书的元数据填充,确定会弹出新生成电子书元数据的编辑界面,你可以根据自己的实际需求修改,比如选择新的封面,填写新的书名、作者等元数据信息。确认后点击【确定】按钮,提取出来的这本电子书就会自动存进 Calibre 书库中。
如此法炮制,把其它需要提取来的章节条目,按此方法重复操作,直到把所有单本电子书都提取出来。
三、转换分离出的内容格式
全部分离完毕后,就可以把这些单个 EPUB 格式电子书用 Calibre 或 KindleGen 重新转换成适用于 Kindle 的 MOBI 或 AZW3 格式,最后通过邮箱推送或通过 USB 拷贝的方式传进 Kindle 设备中阅读。
最后再唠叨一下转换格式需要注意的一些小细节。使用 Calibre 把电子书转换成 MOBI 格式,默认会输出 old 模式,也就是旧的 mobi7 标准的电子书,它会损失所有原有的 CSS 样式,推送到 Kindle 中后能正常显示封面,但拷贝到 Kindle 设备中不能显示封面,而选择其它两个选项 both 或 new 模式,可能会出现其它问题。用亚马逊官方提供的 KindleGen(特指 2.9 版本)转换的电子书是 KF8 标准的电子书,它能保留 CSS 样式,推送到 Kindle 中后不显示封面,但拷贝到 Kindle 中却能显示封面。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/603.html
“Calibre教程”相关阅读
- Calibre 使用教程之电子书繁体字转简体字
- 把 TXT 文档转换成带目录的 MOBI 格式电子书
- Calibre 转换 TXT 文件出现 Errno 21 错误的解决方法
- Calibre 使用教程之转换电子书格式
- Calibre 常用命令行工具详解之 calibre-smtp
- 解决依赖内嵌字体才能正常显示的电子书乱码问题
- Calibre 使用教程之抓取网站页面制成电子书
- 如何解决 Kindle 电子书无法更换字体的问题
- 如何将 Calibre 中的电子书拼音书名保存成中文书名
- 英文电子书使用字典查词时选中整段的解决方法
- 解决 Calibre 推送“500 Error: bad syntax”错误
- Calibre 发布 3.0 版本(附常用功能梳理)
- Calibre 使用教程之通过邮箱一键推送 Kindle 电子书
- Calibre 常用命令行工具详解之 ebook-convert
- Calibre 使用教程之为 Kindle 电子书添加页码
非常感谢教程!!!终于能把选集合集拆开发到微信阅读了
编辑的时候它没办法删除啊,拆出是啥意思,选出来然后选新建newbook?
下载后,点击EpubSplit后出现下面报错提示。这个要怎么弄啊。
AttributeError: ‘NoneType’ object has no attribute ‘xpath’
请问,如果calibre转换横版azw3文件的时候,版面缺失问题,怎么解决,例如儿童读物或者杂志类,页面貌似都是双页显示,转换成PDF后不仅会变形,甚至页面也出现大部分缺失,把横向排版裁切成竖向排版,这种问题,请给个详细教程,因为我不会写CSS代码啊,求救
这需要测试,可以把 PDF 文件发送到书伴邮箱(页面底部“联系”处获取)。
用 Calibre 将其它源文件转换成 PDF 不需要 CSS,也不需要更改排版的方向,因为页面尺寸是根据你的设定的宽高参数生成的。为了控制 PDF 输出效果,你需要在“PDF 输出”做一些设置。
首先是一些通用设置:勾选“保持封面纵宽比”,把“默认字体大小”和“等宽字体大小”设为“0 px”,把“页边距”的“左右上下”设为“0.0 pt”。
然后是最重要的参数:根据不同的 PDF 页面大小设置“自定义页面尺寸”。该尺寸数值参数格式为“宽x高”,比如“500×300”,注意后面的单位要根据具体情况自行选择,推荐使用比较通用的单位“毫米(millimeter)”。
需要注意的是,通常情况下不知道源文件中的页面尺寸,所以你需要多尝试几次才能得到满意的结果。比如你发给我的 AZW3 文件“Hello, World! Ocean Life”的尺寸需要设置成 260×130 毫米才能获得较好的输出效果。为了更快地获取合适的尺寸,个人建议先设置一个较大的值,然后根据输出效果,按比例将值调小。
想拆一本合集,23M 多一点,点了插件之后 Calibre 就一直转圈圈,等好久也没解决~感觉没希望了。
我也是这个问题,19M左右,异常信息是MemoryError, 我的电脑内存是 128G的,应该不是内存不够,可惜不懂Python,要不就自己查下Bug了.
calibre, version 5.43.0
错误: 未处理的异常: MemoryError:
calibre 5.43 embedded-python: True is64bit: False
Windows-10-10.0.19041 Windows (’32bit’, ‘WindowsPE’)
32bit process running on 64bit windows
(‘Windows’, ’10’, ‘10.0.19041’)
Python 3.8.5
Windows: (’10’, ‘10.0.19041’, ”, ‘Multiprocessor Free’)
Interface language: zh_CN
Successfully initialized third party plugins: EpubSplit (3, 3, 0)
Traceback (most recent call last):
File “calibre_plugins.epubsplit.epubsplit_plugin”, line 133, in plugin_button
File “calibre\db\legacy.py”, line 644, in format
File “calibre\db\cache.py”, line 1008, in format
File “calibre\db\cache.py”, line 74, in call_func_with_lock
File “calibre\db\cache.py”, line 841, in copy_format_to
File “calibre\db\backend.py”, line 1562, in copy_format_to
File “shutil.py”, line 205, in copyfileobj
MemoryError
第一 二步应该正确完成了
但在第三步
站长请问出现这样的报错如何解决
这可能是其中一条错误导致无法成功创建 MOBI 文件的,但是没必要手动分析解决,建议先用 Calibre 重新转换一遍 EPUB 格式(让它把可能存在的问题都自动处理一下),再用 KindleGen 转换。
谢谢站长 已解决
你好,请问是如何解决的?
我遇到的情况跟你一样,分析后发现是拆分 EPUB 文件的时候,text/part0019.html 和 text/part0019.html#I3QM0-389xxxxxx 是一起拆分的,结果就是 toc.ncx 指向了 text/part0019.html#I3QM0-389xxxxxx 而不是指向 text/part0019.html,但是 EPUB 文件里 并没有 text/part0019.html#I3QM0-389xxxxxx 所以导致转换报错,需要手动把 toc.ncx 里的指向修改为 text/part0019.html 后才能正常转换。
如果需要一个个修改工作量巨大,请问这个问题有什么方便的方法解决吗?
可以尝试用 Calibre 重新批量转换一遍,让其自动修复可能存在的错误。
现在已经搜不到这个插件了、
可以呀,我刚都能搜到。
我发现在获取新的插件里搜索搜不到,但是直接找能找到
epubmerge插件
这个跟文章里的有啥区别么
我是回复上面那个Dzero的,他要做合集,文章里面的是做拆分的
您好,请问如何制作合集电子书啊,我想把很多本漫画放在一起,所以不在意大小的限制
生成的Epub没有目录唉!
怎么把合集主封面给去掉啊,即使分开了封面还是一模一样。
第二部分的第 4 段有说明。点击【New Book】后出现的元数据编辑界面中,你可以选择你准备好的其它封面图片。
( ̄△ ̄;)打开了calibre插件的大门……