Calibre 使用教程之为电子书添加更换字体

Kindle 设备自 5.9.6 版本固件起已原生支持自定义字体,点击这里了解详情。

昨天有一位小伙伴在许愿区求助,刚入手一部 KPW2,固件版本是 5.6.1.0.2,但是想要更换电子书字体该怎么办?在这种无法通过越狱安装插件实现更换字体的需求还是有一个方法实现更换字体的,那就是使用 Calibre 把想要用的字体嵌入到电子书中。

这种方法不依赖设备,但是会增加电子书的大小,而且必须转换成 AZW3 格式或 MOBI 格式。如果输出格式选择的是 MOBI 格式,由于 Calibre 的默认输出设置是“old”类型,转换后的是不支持嵌入自定义字体的老版本 MOBI 格式,所以为了实现嵌入自定义字体,需要在“MOBI输出”中把“MOBI输出类型”选择为“both”或“new”,生成新版本的 MOBI 格式。

用 Calibre 为电子书嵌入字体方法很简单,如何转换电子书可以参见《Calibre使用教程之转换电子书格式》这篇文章,在转换的设置界面分别设置以下四项:

  1. 输出格式:AZW3MOBI(注意选择MOBI文件类型为 both);
  2. 在“界面外观”的“内嵌字体”项选择想要嵌入的字体,如果列表中没有想要的字体,可以先去字体下载网站下载想要使用的字体文件,然后通过左下角的【添加字体】按钮添加进来;
  3. 勾选上“嵌入使用到的字体”;
  4. 选择“过滤样式信息”选项卡,勾选上“字体”。
  5. 设置完毕后点击“确定”开始转换。

Kindle 更换字体

转换完毕后,将 Kindle 通过 USB 数据线连接到电脑,将转换后的 AZW3 格式的电子书通过 Calibre 发送到 Kindle 或直接拷贝到 Kindle 中。打开电子书,选择字体,会发现多出来一个“出版方字体”这就是你刚才嵌入的字体了,选中它即可更换这本电子书的字体了。

Kindle 更换字体

转换后的 AZW3 可以直接拷贝到 Kindle 中阅读,但无法推送到云端。由于推送不支持嵌入字体,所以即便转换成 MOBI 格式也无济于事。另外,在嵌入微软雅黑字体时,可能会出现无法转换的错误,暂无解决办法,请选用其他相似字体如信黑、冬青黑、旗黑替代。

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 67 条评论

  1. 最近嵌入字体总是出错,不知道为何emm
    calibre, version 4.15.0 (win32, embedded-python: True)
    转换错误: 失败: 转换书籍 第 1 本,共 1 本 (《—-》2020年1期)

    转换书籍 第 1 本,共 1 本 (《—–》2020年1期)
    C:\Program Files\Calibre2\\app\pylib.zip\dateutil\parser\_parser.py:1177: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode – interpreting them as being unequal
    Conversion options changed from defaults:
    insert_blank_line: True
    remove_paragraph_spacing: True
    cover: u’C:\\Users\\DELL\\AppData\\Local\\Temp\\calibre_yul8op\\qep5wu.jpeg’
    read_metadata_from_opf: u’C:\\Users\\DELL\\AppData\\Local\\Temp\\calibre_yul8op\\nynn8i.opf’
    verbose: 2
    output_profile: u’kindle_pw3′
    filter_css: u’,font-family’
    embed_font_family: u’TsangerJinKai01-27533 W05′
    Resolved conversion options
    calibre version: 4.15.0
    {‘asciiize’: False,
    ‘author_sort’: None,
    ‘authors’: None,
    ‘base_font_size’: 0.0,
    ‘book_producer’: None,
    ‘change_justification’: u’original’,
    ‘chapter’: u”//*[((name()=’h1′ or name()=’h2′) and re:test(., ‘\\s*((chapter|book|section|part)\\s+)|((prolog|prologue|epilogue)(\\s+|$))’, ‘i’)) or @class = ‘chapter’]”,
    ‘chapter_mark’: u’pagebreak’,
    ‘comments’: None,
    ‘cover’: u’C:\\Users\\DELL\\AppData\\Local\\Temp\\calibre_yul8op\\qep5wu.jpeg’,
    ‘debug_pipeline’: None,
    ‘dehyphenate’: True,
    ‘delete_blank_paragraphs’: True,
    ‘disable_font_rescaling’: False,
    ‘dont_compress’: False,
    ‘duplicate_links_in_toc’: False,
    ’embed_all_fonts’: False,
    ’embed_font_family’: u’TsangerJinKai01-27533 W05′,
    ‘enable_heuristics’: False,
    ‘expand_css’: False,
    ‘extra_css’: None,
    ‘extract_to’: None,
    ‘filter_css’: u’,font-family’,
    ‘fix_indents’: True,
    ‘font_size_mapping’: None,
    ‘format_scene_breaks’: True,
    ‘html_unwrap_factor’: 0.4,
    ‘input_encoding’: None,
    ‘input_profile’: ,
    ‘insert_blank_line’: True,
    ‘insert_blank_line_size’: 0.5,
    ‘insert_metadata’: False,
    ‘isbn’: None,
    ‘italicize_common_cases’: True,
    ‘keep_ligatures’: False,
    ‘language’: None,
    ‘level1_toc’: None,
    ‘level2_toc’: None,
    ‘level3_toc’: None,
    ‘line_height’: 0.0,
    ‘linearize_tables’: False,
    ‘margin_bottom’: 5.0,
    ‘margin_left’: 5.0,
    ‘margin_right’: 5.0,
    ‘margin_top’: 5.0,
    ‘markup_chapter_headings’: True,
    ‘max_toc_links’: 50,
    ‘minimum_line_height’: 120.0,
    ‘mobi_toc_at_start’: False,
    ‘no_chapters_in_toc’: False,
    ‘no_inline_navbars’: False,
    ‘no_inline_toc’: False,
    ‘output_profile’: ,
    ‘page_breaks_before’: u”//*[name()=’h1′ or name()=’h2′]”,
    ‘prefer_author_sort’: False,
    ‘prefer_metadata_cover’: False,
    ‘pretty_print’: False,
    ‘pubdate’: None,
    ‘publisher’: None,
    ‘rating’: None,
    ‘read_metadata_from_opf’: u’C:\\Users\\DELL\\AppData\\Local\\Temp\\calibre_yul8op\\nynn8i.opf’,
    ‘remove_fake_margins’: True,
    ‘remove_first_image’: False,
    ‘remove_paragraph_spacing’: True,
    ‘remove_paragraph_spacing_indent_size’: 1.5,
    ‘renumber_headings’: True,
    ‘replace_scene_breaks’: u”,
    ‘search_replace’: ‘[]’,
    ‘series’: None,
    ‘series_index’: None,
    ‘share_not_sync’: False,
    ‘smarten_punctuation’: False,
    ‘sr1_replace’: None,
    ‘sr1_search’: None,
    ‘sr2_replace’: None,
    ‘sr2_search’: None,
    ‘sr3_replace’: None,
    ‘sr3_search’: None,
    ‘start_reading_at’: None,
    ‘subset_embedded_fonts’: False,
    ‘tags’: None,
    ‘timestamp’: None,
    ‘title’: None,
    ‘title_sort’: None,
    ‘toc_filter’: None,
    ‘toc_threshold’: 6,
    ‘toc_title’: None,
    ‘transform_css_rules’: ‘[]’,
    ‘unsmarten_punctuation’: False,
    ‘unwrap_lines’: True,
    ‘use_auto_toc’: False,
    ‘verbose’: 2}
    InputFormatPlugin: MOBI Input running
    on C:\Users\DELL\AppData\Local\Temp\calibre_yul8op\fgrhpv.mobi
    Found KF8 MOBI of type u’standalone’
    Extracting text…
    Parsing all content…
    Parsing text/part0014.html …
    Parsing text/part0008.html …
    Parsing text/part0002.html …
    Parsing text/part0020.html …
    Parsing text/part0017.html …
    Parsing text/part0005.html …
    Parsing text/part0012.html …
    Parsing text/part0000.html …
    Parsing text/part0003.html …
    Parsing text/part0011.html …
    Parsing text/part0001.html …
    Parsing styles/0001.css …
    Parsing text/part0018.html …
    Parsing text/part0015.html …
    Parsing text/part0004.html …
    Parsing text/part0016.html …
    Parsing text/part0009.html …
    Parsing text/part0019.html …
    Parsing text/part0013.html …
    Parsing text/part0007.html …
    Parsing styles/0002.css …
    Parsing text/part0010.html …
    Parsing text/part0006.html …
    Reading TOC from NCX…
    Merging user specified metadata…
    Detecting structure…
    Flattening CSS and remapping font sizes…
    Filtering CSS properties: , font-family
    Python function terminated unexpectedly
    ‘NoneType’ object has no attribute ‘decode’ (Error Code: 1)
    Traceback (most recent call last):
    File “site.py”, line 114, in main
    File “site.py”, line 88, in run_entry_point
    File “site-packages\calibre\utils\ipc\worker.py”, line 209, in main
    File “site-packages\calibre\gui2\convert\gui_conversion.py”, line 43, in gui_convert_override
    File “site-packages\calibre\gui2\convert\gui_conversion.py”, line 28, in gui_convert
    File “site-packages\calibre\ebooks\conversion\plumber.py”, line 1232, in run
    File “site-packages\calibre\ebooks\oeb\transforms\flatcss.py”, line 196, in __call__
    File “site-packages\calibre\ebooks\oeb\transforms\flatcss.py”, line 246, in get_embed_font_info
    File “site-packages\calibre\utils\filenames.py”, line 37, in ascii_filename
    File “site-packages\calibre\utils\filenames.py”, line 28, in ascii_text
    AttributeError: ‘NoneType’ object has no attribute ‘decode’

  2. 您好,我的电子书中有批注以不同字体出现,请问有没有办法将所有批注/所有正文字体分别更换掉呢?感谢!

    • 首先你需要知道两种不同字体所在标签的 class 或 id 名,然后用 Calibre 转换时,在“界面外观”的“Styling”中找到“Extra CSS”,在这里面分别为两种字体的标签编写 CSS 样式指定不同的字体。

      或者你可以可以用 KindleUnpack 把电子书拆解成源代码,然后编辑 CSS 文件,修改其中不同字体所在的标签 class 或 id 所引用的样式来指定不同的字体。

  3. 我折腾了一早上
    终于把字体添加到calibre了
    然后开始转换 第一本转换字体成功 我在calibre里预览显示的都是我自己添加的字体 我很开心 发送到设备
    然而打开kindle发现没有出版方字体这个选项
    我确定我设置的是azw3也设置了过滤字体
    这不是高潮
    高潮是我转换的第二本书全是乱码
    都是同一个字体为什么一本正常一本乱码
    我现在真的崩溃了求大神帮帮忙

  4. 您好!我有一个问题。我有一本书,里面的文字有大有小,我想把它们调成大小一致。应该怎么操作?

  5. 你好,不知道您这里还能不能看到了。。我按照这个办法转换后,Kindle打开调整为出版方字体后,就会显示出现错误,如果您从亚马逊购买了此内容,请从设备删除,并从云端重新下载。。

    哎,弄了几次都无解,用DeDRM插件处理了,还是无解。

    • 酗酒的上帝 您好。不知道你选择的是什么输出格式。转换时建议选择 azw3 格式,如果选择 mobi 格式并且模式选择 new 可能就会出现你遇到的问题。

      • 我也遇到了这样的错误,而且我是选择输出格式为 azw3 的,仍然显示出现错误。

        • 比如阿修罗三部曲中亚破解,就会出现选择输出格式为 azw3,转换字体后,kindle选择出版社字体,就出现“错误,如果您从亚马逊购买了此内容,请从设备删除,并从云端重新下载。” 如果用自带字体就不会出现以上情况

  6. 添加 汉仪家书简 字体时报了这个异常。是否遇到过类似情况?可有解决办法?

    calibre, version 2.75.1
    错误: 未处理的异常: TypeError:Not a unicode string

    calibre 2.75.1 [64bit] embedded-python: True is64bit: True
    Windows-8-6.2.9200 Windows (’64bit’, ‘WindowsPE’)
    (‘Windows’, ‘8’, ‘6.2.9200’)
    Python 2.7.9
    Windows: (‘8’, ‘6.2.9200’, ”, ‘Multiprocessor Free’)
    Traceback (most recent call last):
    File “site-packages\calibre\gui2\font_family_chooser.py”, line 306, in add_fonts
    File “”, line 5, in lower
    TypeError: Not a unicode string

  7. 可能是因为微软雅黑是ttc文件,也就是一套的字体,要用fontforge等软件拆成一个个ttf才行