Calibre管理电子书怎样和原来的命名规则相结合?

比如希望在书名中体现扫描版,带书签等信息,可以用Calibre实现改名吗?原来书名都是中文的,Calibre会转为拼音,要改为中文,就要另存,造成多版…
关注者
151
被浏览
104,117

10 个回答

1.使用源代码启动Calibre,如何做,见官网Setting up a calibre development environment
2.修改代码。在backend.py中发现调用了construct_path_name,接着发现:construct_file_name,直接将author、title注释掉即可。
3.会有一点问题,如果书名从电子书中提取的话,主要是对"\:"等字符问题。

参考我的博文:

2018.12.16补充:

解决上述文件名、路径中非法字符的问题,这样就不报错了:

1.添加一个自定义函数

def replace_invalid_filename_char(filename, replaced_char=''):

'''Replace the invalid characaters in the filename with specified characater.

The default replaced characater is '_'.

e.g.

C/C++ -> C_C++

'''

valid_filename = filename

invalid_characaters = '\\/:*?"<>|'

for c in invalid_characaters:

#print 'c:', c

valid_filename = valid_filename.replace(c, replaced_char)

return valid_filename

2.把存在于construct_path_name,和construct_file_name函数中的author、title修改为:

author=replace_invalid_filename_char(author)

title=replace_invalid_filename_char(title)

calibre的设计理念中希望到达用户不用关心物理文件的目标,所以一些信息都应该在calibre书库中进行维护。无须纠结被改得无法识别的拼音文件名。

“扫描版”“带书签”这些书籍信息,可以以自定义元数据字段的方式在calibre书库中得到管理。也可以通过给书籍加标签的方式来得到有效的管理。但这些信息总不该出现在“书名”中。

如果需要把这些信息在导出文件时体现在文件名中,可以通过配置保存文件时所用的文件名模板实现。如果需要把这些信息在转到阅读器时在阅读器上的书名中体现,可以通过设置元数据控制板实现。