Calibre 使用教程之优化电子书的排版

“转换电子书格式”相关阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 89 条留言

  1. 请问一下,为什么我修改后,首行缩进和段落间距都成功,但是行间距怎么修改都没有变化?

  2. 你好 我设置了缩进 段落的缩进是我想要的,但是书里面的代码的首行他也帮我缩进了…这个应该怎么解决?
    cass A{
    void fun () {}
    }

    • 陶加涛 您好。程序不会区分正常段落和代码块的,这种情况您需要先找到包含代码块的元素的 id 或 class,然后在“样式”里面附加 CSS 样式重置缩进。比如代码块被 <div class="code"> ... </div> 这样一个 div 包裹着,那么就在 附加 CSS 里加上这样一行代码 .code { text-indent: 0; } 即可。

      • 你好 这个问题之前解决了 但是我发现用calibre转换一些azw3 epub到mobi 会报错Creating KF8 output
        Generating in-line ToC
        Python function terminated unexpectedly
        Opening and ending tag mismatch: span line 171 and style, line 278, column 12 (Error Code: 1)
        Traceback (most recent call last):
        File “site.py”, line 132, in main
        File “site.py”, line 109, in run_entry_point
        File “site-packages\calibre\utils\ipc\worker.py”, line 195, in main
        File “site-packages\calibre\gui2\convert\gui_conversion.py”, line 33, in gui_convert_override
        File “site-packages\calibre\gui2\convert\gui_conversion.py”, line 26, in gui_convert
        File “site-packages\calibre\ebooks\conversion\plumber.py”, line 1226, in run
        File “site-packages\calibre\ebooks\conversion\plugins\mobi_output.py”, line 204, in convert
        File “site-packages\calibre\ebooks\conversion\plugins\mobi_output.py”, line 216, in create_kf8
        File “site-packages\calibre\ebooks\mobi\writer8\main.py”, line 496, in create_kf8_book
        File “site-packages\calibre\ebooks\mobi\writer8\main.py”, line 51, in __init__
        File “site-packages\calibre\ebooks\mobi\writer8\toc.py”, line 94, in __init__
        File “lxml.etree.pyx”, line 3032, in lxml.etree.fromstring (src\lxml\lxml.etree.c:68121)
        File “parser.pxi”, line 1786, in lxml.etree._parseMemoryDocument (src\lxml\lxml.etree.c:102470)
        File “parser.pxi”, line 1667, in lxml.etree._parseDoc (src\lxml\lxml.etree.c:101229)
        File “parser.pxi”, line 1035, in lxml.etree._BaseParser._parseUnicodeDoc (src\lxml\lxml.etree.c:96139)
        File “parser.pxi”, line 582, in lxml.etree._ParserContext._handleParseResultDoc (src\lxml\lxml.etree.c:91290)
        File “parser.pxi”, line 683, in lxml.etree._handleParseResult (src\lxml\lxml.etree.c:92476)
        File “parser.pxi”, line 622, in lxml.etree._raiseParseError (src\lxml\lxml.etree.c:91772)
        lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: span line 171 and style, line 278, column 12
        这个是因为什么原因呢 转换成epub是可以的 但是epub我用kindlegen转换成mobi又报错
        信息(prcgen):I1040: 文档标识符是: “TPYHXB”
        信息(prcgen):I1041: 文件格式版本是 V8
        信息(prcgen):I1031: 保存 PRC 文件
        信息(prcgen):I1032: 成功创建 PRC
        信息(prcgen):I1038: 由于出现错误,无法生成 MOBI 域名文件!
        希望得到回复 谢谢

        • 注意这条错误提示:Opening and ending tag mismatch: span line 171 and style, line 278, column 12。从错误看,这是 XML 语法错误(没有结束的 XML 标签)导致解析出错,请检查 toc 文件,看看第 171 和 278 行有没有这个错误。

  3. 你好,我用calibre把一份word文档转成mobi,然后导入到iphone7的kindle应用上观看,发现无论在calibre里如何调整行距,最后导入到手机应用的结果都是没有发生任何变化(mobi输出格式也勾选了both)。非常苦恼,可否帮我解答?

    • 孤城 您好。如果不是 mobi 格式的原因,那可能就是转换后的 html 代码结构的原因,请先使用 Calibre 把这个文件转换成 epub 或 azw3 文件,然后再用编辑功能打开,看看源代码里面每一个段落使用的是否是 <p> 标签?

      • 按照你说的方法看了一下,发下每一个段落开头不是,而是。这个问题有办法解决吗?

        • 直接说标签名即可,不用加 <>,不然代码会被过滤掉。

          对于这种要调节电子书内容排版,还是建议使用亚马逊的官方转换工具 KindleGen 来转换。你可以先用 Calibre 调整好排版参数,然后转换成 epub 格式,然后再用 KindleGen 把这个 epub 格式转换成 mobi 格式。

          当然以上这种方法主要是针对转换后的文件需要使用邮箱推送的情况。如果不需要推送,直接使用 USB 数据线拷贝,那直接用 Calibre 转换成 azw3 格式就可以了。

          • 大部分段落的标签是(p class=”block_6″)(span lang=”zh” class=”text_1″),然而可能因为原word文档是图文混排,所以有些段落的标签类似于(p class=”block_6″)(span lang=”zh” class=”calibre3″)(img src=”images/image12.jpeg” alt=”image15″ class=”calibre2″/)(/span)(span lang=”zh” class=”text_1″)。

            按照您的回复意见,我只需要先用 Calibre 调整好排版参数并转换成 epub 格式,然后再用 KindleGen 把这个 epub 格式转换成 mobi 格式就可以解决行距调整的问题了是吗?不需要修改任何段落的标签名吗?

            我看电子书只在苹果手机上的kindle应用上看,不在其他设备上看。而kindle应用是无法读取azw3格式的。

            • 是的,不需要手动干预标签。KindleGen 可以把 EPUB 格式转换 KF8 标准的 MOBI 格式,这种格式和 AZW3 没什么区别。

  4. 你好,为什么我把电子书导入calibre排版会乱?而在word上排版并不会乱。

    • 小柴胡 您好。指的是把 Word 转换成 mobi 格式后排版会乱吗?如果是的话,这是正常的。mobi 格式电子书本质上就是 html 文档,而 Word 文档并非标准的 html 文档,Calibre 在转换的时候只是尽可能地按照原样把 Word 文档转换成 html 结构。对于简单的 Word 排版 Calibre 转换的效果可能还行,但是对于稍微复杂一点的排版,Calibre 就力不从心了。

  5. 您好,我在转换一本书时始终失败,无法调整行间距。
    您能否留下邮箱,我发送给您这份文件,您为我检查下问题出在哪?
    十分感谢

    • 一二 您好。如果是生成的 mobi 格式,需要在“MOBI输出”中8把“MOBI文件类型”改为 both。邮箱可在页面底部的“联系”获得。

  6. 小编好,我用Calibre把一本英文pdf转换成azw3,导入kindle以后点击更换字体,显示的是中文的楷体黑体等,请问是在转换过程的设置出了什么问题吗?

  7. 你好,请问我用calibre将pdf转为azw3时,出现大量段落内换行的情况应该怎么解决?

    • 舟 您好。PDF 的格式实现比较复杂,并不是标准的的文本格式,所以才可能造成这种换行的情况出现。此问题貌似没有特别好的办法,只能手动校对。

  8. 您好我想请问下
    1.现在我转换好的azw3格式一级目录和二级目录字太大了怎么办?
    2.我看的是剧本希望左边顶头就好 怎样才能每行不要首行缩进呢?
    3.英文换行断字超奇怪 有方法从断字的单词自动换行嘛?
    谢谢~希望能被回复!

    • Auto 您好。第二个问题好解决,将本文中提到的“行首缩进”设置为“0”即可。其他两个问题,建议您将电子书文件发送到我们的邮箱,以便根据实际情况帮您解答。

      • 我发送到邮箱了 如果能帮到我就太感谢啦!!还有我直接azw3保存到Kindle里面没图片不知道怎么办了~这个小问题就先放着 再次谢谢!

        • 分析了下您发来的电子书文件,发现您提出的问题都是细节上的控制。您可以按照下面的方法在 Calibre 中实现。

          首先选择要转换的格式,然后按照下列说明设置参数。

          1、修改 CSS 中修改一、二级标题的 font-size。在这本书中一级标题的 CSS 类是 calibre3,二级标题的 CSS 类是 calibre5,将其 font-size 属性设置成你所希望的大小,比如当前为 1em,你可以将其修改成 0.7em 或者更小。具体方法为:在转换界面切换到“界面外观”,切换到“Styling”,然后在“Extra CSS”中写入下列 CSS 代码:

          .calibre3{ font-size:0.5em; }
          .calibre5{ font-size:0.5em; }

          2、把 CSS 中的所有 text-indent 属性设置为 0。具体方法为:在转换界面切换到“界面外观”,切换到“layout”,勾选“删除段间空行”,把其后的“Indent size”设置为 0。

          3、转换的内容中的空格都是 &nbsp; 这种强制不换行空格,可以在转换时利用正则替换成普通空格即可。具体方法为:在转换界面中切换到“查找与替换”,然后添加一个替换规则,查找正则表达式:\xa0,替换文本为一个空格。

          设置完毕后开始转换,最终生成的电子书就解决这三个问题了。

          • 太感谢了!辛苦辛苦啦~我会好好看的~再次感谢!又学会了一招~你好厉害啊!

  9. hello,我PDF的文件转成MOBI格式和AZW3格式的时候文章格式都乱掉了,在句子中间直接分段了,每段就一行零两个词然后又一段,请问可以怎么解决?

    • 马佳理 您好。如果您使用 Calibre 转换电子书,可以在转换对话框中选择“界面外观”,然后切换到“过滤样式信息”,在“选择您想要彻底移除的样式信息”选项中勾选“颜色”,这样转换出来的电子书就是纯黑色了。另一种方法是通过编辑电子书的源文件,删除 CSS 中所有的 color 属性(或者把所有 color 的属性值都改为 #000 或 black 也可以)。

    • 马佳理 您好。如果单词的间距过大,可以检查下电子书的 CSS 中是否有“两端对齐”属性:text-align: justify,如果有的话去掉即可。

    • livingroom 您好。如果需要推送到云端,不建议使用本文提供的方法。想要推送到亚马逊云端的电子书显示封面,需要将 mobi 选项设置为 old 模式(也就是 mobi7 这种老的电子书标准,这种标准的电子书无法使用 CSS 控制排版)才能正常显示封面。因为这属于亚马逊服务器的问题,没有办法解决。

  10. 你好,我在用这个软件把PDF转成mobi的时候,文件大了好几倍,可能是什么问题?谢谢

      • 你好,我是将原先是PDF的文件转成mobi,但那个PDF是扫描版的,所以会是这里的问题么,还有就是我想要德汉字典的mobi,小语种那里有新德汉,但只有这一本,而且解释有点…,所以就想自己弄一本,有什么方法推介么?谢谢

        • 随便使用 PDF 文档转换成 mobi 格式测试了下,一个 8.2MB 的 PDF 转换成的 mobi 格式达 105.1MB。使用 KindleUpack 将转换后的 mobi 文件拆解后发现 Calibre 是把 PDF 的每一页都转化成 JPG 格式图片,而每张图片的尺寸又比较大,所以才造成这种情况。需要注意的是,之所以 PDF 的体积很小,是因为有些 PDF 文档虽然是扫描版,但页面内容并非是位图形式,而是以矢量形式存储。使用 PDF 阅读器放大页面,可以看到这些文字的边缘都是矢量小方块。

          自制字典方法可以参考本站的自制字典的相关教程

  11. 小k,我如果把转换格式直接设置MOBI,然后MOBI文件类型直接选成NEW,可以吗?修改行间距后发送KINDLE能够识别吗,能正常显示吗

    • 黎星瞳 您好。经过测试,MOBI 文件类型选择 NEW 后很可能 Kindle 无法读取,也无法成功推送。所以对于转换格式,建议您参考本文的“提示2”。