MOBI 转 EPUB 后排版变了,绝大多数问题出在三处:转换器把原书的绝对字号和固定宽度原样搬了过去,原书标题没用 h 标签导致目录生不出来,以及阅读器自带「覆盖排版」设置把样式改写了。排查顺序建议固定下来:先用第二款阅读器打开转换结果,分辨是文件问题还是渲染器问题;再按「内容层—样式层—结构层—渲染层」四层核对;最后才回头调转换参数。动手前还要做两件事:确认来源合法、备份原文件,并且一次只改一个设置,改完立刻比对。
| 层次 | 典型症状 | 主要成因 |
|---|---|---|
| 内容层 | 文字缺失、乱码、顺序错乱 | 源文件编码、图文混排方式、转换器解析能力 |
| 样式层 | 字体被换、字号调不动、行距变密、缩进消失或变成双重缩进 | 原书 CSS 写死了字体与绝对字号,与阅读器设置冲突 |
| 结构层 | 目录丢失、层级错乱、章节切分错位、脚注跳不过去 | 标题没用 h 标签、源文件没有锚点、目录生成设置没勾 |
| 渲染层 | 同一份文件在 A 应用里正常,在 B 应用里又变了 | 各阅读器的 CSS 支持度与默认覆盖策略不同 |
判断技巧很直接:如果同一份 EPUB 在另一款阅读器里显示正常,问题就在渲染层,去改阅读器设置而不是改文件;如果两款阅读器错得一样,才说明是文件本身的问题。
不同转换工具的名字不一样,但这七项基本都在设置面板里,且直接决定输出效果。
| 设置项 | 常见默认 | 对排版的影响 | 建议 |
|---|---|---|---|
| 输出 EPUB 版本 | 跟随工具默认,可能是 2.0 | 老设备只认 2.0;3.0 的章节导航在新设备上体验更好 | 新设备选 3.0,旧阅读软件选 2.0 |
| 是否保留源样式 | 保留 | MOBI 内的 CSS 常用绝对字号与固定宽度,会被原样搬进 EPUB | 先跑一版「移除大部分样式」作对照 |
| 字号单位改写 | 不改写 | 写死 pt、px 会让阅读器的字号滑块失效 | 改成 em、rem 等相对单位 |
| 字体嵌入 | 只保留字体名 | 嵌入会增大体积且涉及字体授权;不嵌入则依赖设备字体 | 正文优先用通用族;嵌入前确认授权 |
| 段落缩进与段距 | 注入转换器默认样式 | 与原书缩进叠加,出现双重缩进或段距过大 | 缩进用 text-indent,段距用 margin,只留一个 |
| 目录生成方式 | 按标题层级自动生成 | 标题不规范时目录为空或只剩一层 | 标题不规范时改用 XPath 或手动指定 |
| 图片处理 | 可能压缩、可能不带封面 | 画质下降、封面缺失 | 关闭画质压缩,元数据里单独指定封面 |
原因一般是原书 CSS 里写死了具体字体名,而设备上没有这支字体,阅读器只能回退到系统默认。修法是编辑 EPUB 内的样式表,把 font-family 后面多余的具体字体名删掉,或改写成 serif、sans-serif 这类通用族。另一原因是字体文件根本没被一并复制进去:嵌入字体会让文件变大、还牵扯授权,很多转换器默认不嵌入,这是取舍不是故障。
通常是三方在打架:原书 CSS 给段落设的 margin、转换器注入的默认样式、阅读器自带的「覆盖排版」开关。处理顺序是先把阅读器的覆盖开关关掉再看效果,恢复正常就说明问题在渲染层;否则再去改样式表,把缩进交给 text-indent、段距交给 margin,正文段落不要再叠一层缩进。
先检查原书的章节标题是不是真的用了 h1、h2 标签。很多电子书的「标题」只是把普通段落调大加粗,机器读起来还是一段话,转换器识别不到层级,目录自然生不出来。标题标签规范时,勾选按标题层级生成目录,或用 XPath 指定目录来源;源文件没有锚点的,只能靠编辑工具手动建立章节切分点。至于「目录看着对、点进去偏了」,属于切分位置问题,与目录生成方式无关。
错位多是因为样式里给图片写死了宽度,比如按 600 像素排的图遇上 360 像素的手机屏,就溢出到屏幕外;变形多是只写了宽度没写高度,被比例以外的规则拉伸。统一改成自适应写法最稳妥:宽度不超过容器、高度按比例自动计算。封面丢失通常是转换时只导出了正文,需要在元数据环节单独指定图片。
原书用分页符或空行分章、而不是用标题标签时,转换后容易出现「一整章挤成一大块」或「每几段就被切一刀」。前者要在转换前把章节标题补成 h1、h2,后者要检查是不是把分隔线误判成了分章标记。标题字号变小,多是相对单位改写后跟着正文缩放了,把标题字号单独写清楚即可。
因为 EPUB 是「内容加样式」的包裹,最终长什么样由阅读器的渲染引擎决定。常见阅读器技术路线不同:一类基于浏览器内核,对 CSS 支持较完整;一类是自研排版引擎,只实现常用样式;还有的会自动覆盖字号、行距、边距,保证「打开就能读」。同一份文件,在支持度高的一端样式生效,在覆盖策略强的一端就被改写。
由此得到一条实用原则:样式越简单、越通用的 EPUB,跨设备差异越小。如果你靠某款阅读器的专有设置把排版调得很满意,换设备必然变脸,这属于预期之内。
很多「转换失败」不是技术问题。受 DRM(数字版权管理)保护的电子书,用常规转换工具会直接报错或导出一片空白,这是权利人为限制复制与传播所做的设计,不是参数没调对。我国《著作权法》允许权利人采取技术措施,并禁止故意避开或破坏技术措施;法律规定了少量可不经许可的例外情形,个人为转换格式而规避技术措施并不在其中。合规路径有三条:使用无 DRM 的版本、通过官方应用阅读、使用图书馆借阅(有借期与份数,一般不允许导出再转换)。本文只说明 DRM 是什么、为什么转不动,不提供任何去除 DRM 的方法。
九步走完仍然不对,再回头动转换参数。参数不是第一现场,顺序对了能省掉大半时间。格式与转换的基础知识可看格式与转换大全,从 TXT 起步的流程可参考TXT 转 EPUB 怎么做。
多半是原书 CSS 里写死了具体字体名,而你的设备上没有这支字体,阅读器只能回退到系统默认字体。修法是编辑 EPUB 内的样式表,把 font-family 里多余的字体名删掉或改写成 serif、sans-serif 这类通用族。字体文件本身没被一并复制过去,也会出现同样现象。
段距有三个来源在打架:原书 CSS 给 p 设的 margin、转换器注入的默认样式、阅读器自带的“段间距/行距/首行缩进”覆盖开关。先把阅读器的覆盖开关关掉对比,恢复正常就是渲染器的问题;否则在 EPUB 样式表里用 text-indent: 2em 控制缩进、用 margin 控制段距,二者只留一个,避免双重缩进。
先看原书的章节标题是不是真的用了 h1、h2 标签。很多 MOBI 用加大加粗的普通段落当标题,转换器识别不到层级,目录自然生不出来。若标题标签规范,就在转换设置里勾选按标题层级生成目录,或改用 XPath 指定目录来源;源文件没有锚点的,只能在编辑阶段手动建立章节切分点。
错位多因样式里给图片写死了 width(例如 600px),屏幕比它窄就溢出;变形多因只写 width 不写 height,被按比例以外的规则拉伸。统一改成 img{max-width:100%;height:auto} 就能自适应。封面丢失通常是转换时只导出了正文,需要在元数据环节单独指定封面图片。
不能。DRM 属于《著作权法》保护的技术措施,带保护的文件用常规转换工具会直接失败或输出空白,这不是参数设置问题,而是设计如此;规避技术措施本身也为法律所禁止。合规做法是使用无 DRM 的版本、通过官方应用阅读或使用图书馆借阅。本文不提供任何绕过 DRM 的方法。
转换前想确认「自己转换自己用」的边界,读电子书自转换合规吗;想按设备挑阅读器、少踩渲染差异的坑,看2026 电子书阅读器推荐;书源是否合规,可对照电子书合规指南自查。
依据说明
*更新于 2026-09-13 | 电子书格式转换与排版排查 | 文中涉及的格式规范以官方发布为准,转换前请确认文件来源合法且不含 DRM 保护,本文仅供参考。*