在书伴发布《如何理解 Kindle 电子书的“位置号”和“页码”》这篇文章后,昵称为 ZJG 的小伙伴在微信公众号中留言指出 Calibre 是支持为 kindle 电子书添加“页码”的,并将具体的实现方法投稿给了书伴,在此感谢这位小伙伴的分享。书伴对此方法做了整理和补充,并对其中需要注意的事项做了说明。
一、添加页码的步骤Calibre 为 Kindle 电子式添加页码的方式,不是通过转换格式实现的,而是通过在传输电子书的过程中附加页码元数据实现的。用 Calibre 为电子书添加页码的操作步骤很简单,只需要用 USB 数据线把 Kindle 连接至电脑,然后选定 Calibre 书库中你要阅读的电子书,通过 Calibre 的工具栏中的“发送到设备”图标按钮(也可以通过右键菜单中的“发送到设备”项)将其传送到 Kindle 设备就可以了。
那页码元数据存放在哪儿呢?打开 Kindle 磁盘中的 documents 文件夹,打开和电子书同名的 sdr 文件夹,可以看到一个后缀名为 apnx 的文件,这就是 Calibre 为电子书生成的页码元数据文件。
二、添加页码的说明可能会有小伙伴们会问,那 Calibre 为电子书生成的页码能和纸质书的页码对应起来吗?答案是不能。之前书伴曾说过,到目前为止 Kindle 商店中的电子书无法全部支持“书内页码”,原因就是想要把电子书和纸质书的页码匹配起来需要一些额外的工作,而这些工作想必也不会太顺畅。亚马逊想要把纸质书页码和电子书页码之间的映射制成元数据,除了成本的考量,还有和出版商之间的协作等诸多不可控环节。
显然 Calibre 并没有神力能够无中生有的把纸质书页码和电子书页码映射起来,那它是怎么实现的呢?
三、添加页码的原理在 Calibre 的工具栏中找到“设备”图标按钮,点击旁边的倒三角,在弹出的菜单中点击“配置该设备”,可以弹出一个名为“配置 Amazon Kindle”的对话框。在此对话框中你可以找到“发送书籍时发送页码信息”这个选项(默认勾选),此选项表示使用 Calibre 把电子书发送到 Kindle 设备时附加页码元数据。
Calibre 解释说 Kindle3 以及更新版本的 Kindle 设备可以读取 MOBI 格式电子书的页码信息,使用此选项 Calibre 能够在用 USB 传输 MOBI 文件的同时计算电子书的页码,并将页码信息(即后缀名为 apnx 的页码元数据文件)发送到 Kindle 中。也特别强调了,生成的页码信息并不与任何纸质书籍对应。
这个选项下方有一个下列表,列表中有 accurate(精确)、fast(快速)和 pagebreak(分页符)这三个可选参数。当把鼠标指针悬浮到选择框上稍停片刻,就可以看到对这三个选项的详细解释:
accurate:基于电子书中的章节、段落数目和可视线。此方法是以模拟纸质书每页 23 行,以及每行不超过 70 个字符来设计的。fast:每一页含有 2300 个未压缩的字符。此为默认项。pagebreak:基于电子书中已存在的 标签来确定页码。以上三种方法,除了 fast 其它方法都会非常慢,因为 fast 只需要单纯的计算字符个数就可以了,而另外两个则多了一些额外的计算,比如 pagebreak 需要计算分页符个数,accurate 需要计算行数甚至每行的字符数。另外,如果 pagebreak 不能确定页码会自动使用 accurate,accurate 也失败后会使用 fast。
除了这三个默认可选项外,下拉列表下方还有还有两个可输入选项,分别是“自定义获取页数的列名”和“自定义获取计算方法的列名”,可以在使用第三方插件如 Count Pages 生成的数据时使用。
四、添加页码的意义由此可见 Calibre 为电子书生成的页码,不论是计算章节段落还是计算字符数,都是通过私有算法实现的,而这种无法和纸质书映射的页码其实是没有实际意义的,也仅能私用吧。此方法无法真正解决电子书和纸质书页码相匹配的需求,真正的页码匹配仍然需要亚马逊官方为电子书提供页码支持。
© 「书伴」原创文章,转载请注明出处及原文