
做电子书这事我前前后后折腾过不少工具最早也是图省事直接把文档丢在线网站转格式。结果有一次传一个二十多万字的文稿上传等了半天不说心里还老嘀咕内容会不会被存到别处。从那以后我就彻底转向本地软件了反正现在桌面端能干的活远比我想象的多。我现在固定下来一套三件套Sigil 负责电子书编辑Calibre 负责格式转换和书库管理Umi-OCR 配合本地模型做扫描识别。三个都是离线可用文件不离开本机导出后的 EPUB、PDF、MOBI 就算拔了网线也能正常打开。这篇就把我实际使用的经验和踩过的坑整理出来适合那些想把手头笔记、旧 PDF、课件资料整理成离线电子书的朋友参考。1. 为什么必须是“本地软件”在线转换的坑我先替你踩了很多人一上来就喜欢用网页版的转换工具觉得不用装软件更方便。但用过几轮以后你会发现在线工具的痛点基本都集中在三个地方文件大小限制、隐私风险和格式还原度差。我身边就有同事把五十多MB的扫描PDF传到某个免费转换站结果排队半小时最后被告知超出免费额度那叫一个折腾。1.1 在线工具的上传限制和隐私问题在线转换工具表面上免费实际上处处设限。免费用户通常只能转20MB以内的文件超过就要充会员。就算不充会员上传速度也受制于服务器带宽碰到大文件经常转一半就断开。更麻烦的是隐私问题我整理过一整年的项目归档资料里面有不少内部合同扫描件让我拿这些东西去上传第三方平台我是真不放心。这里不是要一棒子打死所有在线工具有些场景它们确实方便。但只要涉及尺寸比较大的文件或者内容比较私密的资料原则就一条文件不落地、不上传哪咤闹海也得在当地解决。本地软件没这个问题所有计算都在自己电脑上跑数据文件从输入到输出全程不离开硬盘离线能用断电断网也不影响。1.2 我选本地软件的三个标准做电子书的本地软件不少但我筛选下来会看三件事。第一是免费开源或者有持续更新别装一个软件回去发现三五年不维护格式兼容性全是雷第二是主流的电子书格式要覆盖到位至少能读 EPUB、PDF、TXT能输出这些格式也是底线第三是允许批处理和命令行调用这样一次转换几十个文件的时候不用一个一个点鼠标。按照这个标准“Sigil Calibre 本地OCR”这套组合刚好覆盖了电子书制作的三段流程先把手头素材识别成可编辑文字再用Sigil把内容排成规范的EPUB最后用Calibre转换成不同阅读设备需要的格式。三个环节各自独立又能在一条工作流里串起来这是我最看重的地方。2. 第一件Sigil电子书编辑这个最累的活交给它电子书制作里最花时间的不是转换而是编辑。很多人以为把Word另存为PDF就算电子书了其实真正的电子书要的是可重排、可检索、目录清晰。Sigil就是专门干这个的开源编辑器它是直接操作EPUB内部结构的工具比Word另存为靠谱得多。2.1 Sigil到底能做什么为什么不用WordEPUB的内核是一个ZIP包里面装着XHTML、CSS、图片和元数据文件。Sigil相当于把这些文件直接摊开给你看想改文字就改文字想调样式就调样式整个过程中不会像Word那样生成一堆乱七八糟的内联样式。我之前试过把Word文档直接导出EPUB结果是字体样式写死在每个段落里换一个阅读器显示完全不受控想整体换字号还得一句一句改完全没有维护性。Sigil的界面类似网页编辑器左侧是文件树右侧是代码编辑区也能切换成预览模式。它自带一个epubcheck校验插件保存前能帮你检查目录、样式、缺失文件这些问题。对于新手不需要会写代码但至少要知道XHTML是什么东西不然遇到样式问题会一头雾水。我后来给朋友做教材整理时八十多页内容有大量标题、图片和表格用Sigil处理起来比在Word里排版省太多事。2.2 从零手作一本干净EPUB的完整流程我通常的流程是这样的先不管原始素材是Word、TXT还是已经识别好的文本第一步总是先在Sigil里新建一本书然后把内容逐章粘贴进去。粘贴的时候注意不要从Word直接复制带样式的文字最好先在记事本里过一道把字体、字号、颜色这些内联格式全部剥掉再贴到Sigil里。第二步是检查段落结构。EPUB里每换一段都应该对应一个p标签标题用h1到h6。如果从网页复制内容很容易把整篇内容塞进一个div里看起来没问题但后续目录生成会漏掉很多标题。第三步是添加目录。Sigil的“目录”面板可以基于标题自动生成但前提是你得先把各级标题的标签设置对。我习惯把章标题设为h1节标题设为h2这样自动生成的导航目录刚好对应书的结构。设置好之后再用“工具→目录→自动生成”跑一遍导航目录就会出现在左侧。第四步是补元数据。这一步很多人忽略但其实很重要因为它关系到电子书在不同阅读器里显示的书名、作者和排序信息。我一般会在“元数据编辑器”里填好标题、作者、语言语言这里中文内容务必要填zh不然有些阅读器会默认按英文排版处理。如果手里有合法的ISBN编号可以填进去没有就留空不要编一个假号骗过校验器。第五步是加封面。Sigil里可以右键添加图片再在元数据里把封面属性指过去。封面图片建议用JPEG格式宽度别超过1600像素不然一些老牌阅读器会加载得很吃力。最后一步是校验并保存。按F7运行EPUB校验看到没有错误弹窗后这本电子书才算真正完成了。这套流程走熟了以后一本七八万字的文档我大概半小时能搞定比在排版软件里做版面轻松多了。2.3 编辑时最容易踩的三个细节第一个细节是中文引号问题。很多OCR出来的文字引号会被识别成英文半角双引号在中文排版里看着非常违和。我习惯在Sigil里用查找替换把英文引号统一换成中文引号虽然费点时间但阅读观感完全不一样。第二个细节是图片路径。如果图片是通过拖拽方式加进Sigil的路径一般没问题。但如果是手工改代码图片路径一旦写错EPUB校验虽然不一定报错阅读器里也会显示成破图。我吃过这个亏后来都是先看左侧文件树确保图片实际上传进了Images目录再去代码里引路径。第三个细节是嵌入字体。中文字体文件动辄十几MB全嵌入会撑爆文件体积不建议常规操作。但如果你做的是带特殊字体的海报页或封面页可以把字体文件放进Fonts目录再在CSS里用font-face声明。只针对封面这一页用别全书嵌入不然转出来的文件会大得离谱。3. 第二件Calibre格式转换和整库导出我全交给它Sigil产出的是一本干净EPUB但这不代表所有设备都能直接读。许多阅读器、手机App、电子墨水屏设备有自己偏好的格式这时候就得靠Calibre出马。Calibre是我心目中本地电子书工作流里最有力的中转站它既能管书库又能做格式转换还能通过插件把书的元数据统一收拾整齐。3.1 Calibre在电子书制作里的定位Calibre的定位说通俗点就是你的电子书资源管理器加格式翻译官。你可以把EPUB、PDF、TXT、MOBI、AZW3全塞进它的书库里它会按作者、系列、标签、评分这些维度归档还支持自动下载封面和元数据。不过自动抓取元数据的功能需要联网如果你特别在意隐私可以在设置里关掉不影响转换功能。格式转换是Calibre的核心能力它支持输出EPUB、MOBI、AZW3、PDF、TXT、DOCX等一大堆格式。实际用起来我最常做的是把EPUB转成MOBI或AZW3放到电子墨水屏设备里或者转成PDF打印出来看。转换时它会单独处理CSS把复杂的Web样式转成适合阅读器的简单样式这一点比很多在线转换站强太多。3.2 从EPUB导到PDF、MOBI的实操步骤Calibre的图形界面操作很简单把书添加进书库右键选择“转换书籍”然后配置输出格式就行。但遇到批量转换的时候一键点一百本书能点到手酸所以我更推荐用命令行工具ebook-convert。比如说要把一本input.epub转成适合A4打印的PDF我的命令通常是这样的ebook-convert input.epub output.pdf --paper-size a4 --margin-top 15 --margin-bottom 15 --margin-left 20 --margin-right 20 --base-font-size 11这几个参数的含义分别是纸张尺寸、上下左右页边距和基准字号。A4纸打印的话基准字号设10到11比较合适太小打印出来伤眼睛太大会导致一张纸内容太少。如果要把input.epub转成MOBI格式给阅读器用我更推荐这样写ebook-convert input.epub output.mobi --output-profile kindle --base-font-size 10--output-profile kindle是让Calibre按Kindle屏幕的渲染习惯生成文件这样导出后在阅读器里翻页、调字号都会更正常。有些朋友可能用的是国内厂商的墨水屏阅读器它们的通用格式其实是EPUB和PDF所以不用转换直接把Calibre书库里的EPUB拖进设备就行。3.3 离线使用和整库分发的几种办法做完电子书最后一步是把它放到你真正要用的设备上。我一般会开一个命名为“离线书库”的文件夹所有最终成品都导到这里然后通过USB线或者本地区域网共享到阅读器、手机和平板。说白了离线的核心思路就是别依赖云端只要你把文件复制到设备里走到哪儿都能看上了飞机、进了山里都不用担心没网络。还有一个细节是文件重命名。Calibre默认会按“书名——作者”的文件名格式输出我建议在转换之前先在书库里把作者和书名元数据填好这样导出的文件不会出现一堆“untitled”之类难认的名字。批量分发靠的是好名字和好目录文件名乱掉的电子书库找起书来特别闹心。4. 第三件本地OCR软件把扫描件变成真正可用的电子书很多人手里都有大量扫描版PDF翻页看没问题但不能复制、不能搜索、字号还不能重排。想把这些“死书”变成能编辑检索的文字版就得靠OCR识别。国内能用且好用的本地OCR软件已经不少我长期使用的是Umi-OCR和Tesseract的组合全部离线运行。4.1 Umi-OCR和Tesseract怎么选先说Tesseract它是开源的OCR引擎支持上百种语言命令行很灵活但直接操作对普通用户不太友好。我更推荐的组合是Umi-OCR它其实是一个本地OCR前端内置了PaddleOCR等模型界面简单明了。你打开软件拖进去一张图片它就调用本地模型识别没有网络请求也不上传数据。在我实际的测试里中文内容PaddleOCR模型的表现通常比Tesseract默认中文模型准一些尤其是对中文竖排和混合中英文的情况。所以日常主力是Umi-OCR处理大篇幅主要还是靠它。Tesseract则更多用于特殊场景比如批量命令处理、老报纸影印件、需要自定义字库的时候。两个软件都能独立工作谁也不依赖网络离线使用这一条是完全满足的。4.2 扫描PDF转可搜索电子书的完整操作我把扫描PDF做成可检索电子书一般分三步。第一步是拆页。如果PDF本身就是扫描图片集Umi-OCR可以直接选择“批量OCR”一次拖入多个PDF文件。它内部会把每一页转成图片再逐页砸出文字。这里最好把PDF分辨率提到300DPI太低的扫描件识别率会明显下滑。第二步是识别和导出。Umi-OCR识别完成后我一般导出成纯文本或者DOCX。纯文本最方便后续在Sigil里重新排版DOCX则适合还要继续编辑的人。需要注意一点OCR出来的文档里会有大量页眉页脚和页码比如“第3页”“某某资料内部文件”这类重复内容整理时最好用查找替换一次性清掉然后再进Sigil做排版。第三步是把识别结果合回PDF。如果不想重新做PDF排版只想让原来的扫描PDF支持搜索和复制文字可以使用OCRmyPDF这类工具在本地给PDF加一层透明文字层。处理完以后原来扫描版的PDF还是原来那个样子但直接在阅读器里就能搜索文字了这个功能对我们整理老资料简直太实用了。Tesseract的命令行做法也可以提一下比如处理单张图片tesseract input.png output -l chi_simeng它会调用简体中文和英文混合模型把input.png识别成output.txt。如果扫描件里包含繁体中文就把chi_sim换成chi_tra必要时也可以在命令行里指定页面分割参数。不过对于大多数非技术朋友我还是建议直接用Umi-OCR的图形界面效果和便利度都更好。4.3 OCR识别率优化和人工校正OCR不是万能的图片质量、排版复杂度、字体清晰度都直接影响识别结果。我总结了几条能明显提高识别率的经验第一就是喂给OCR的图片尽量是二值化或者灰度图背景干净、字迹清楚识别率能高出一截第二是倾斜的页面要先做矫正好多扫描件放歪了一点点OCR就会把整行文字认得乱七八糟第三是遇到双栏排版的纸质书直接整页识别会乱掉最好先用编辑工具分栏后再识别。识别完成后再快也一定要有人工抽查环节。我一般会重点看目录页、参考文献和表格部分目录里的省略号和页码数字容易被识别错参考文献里的英文缩写和年份也常出问题。内容少的手动改内容多的就在Word里跑一遍语法检查。这个活儿听起来枯燥但做完之后得到的电子书能用很长时间回头看是值得的。5. 三个工具串起来的完整实战把一堆杂乱资料变成离线电子书理论说了一堆我拿一个典型的实战案例给你看。前阵子朋友托我整理一套内部培训材料两百多页扫描件全是印好的旧讲义里面有大量代码片段和表格。我的目标是把它变成一本能在手机、电脑上离线阅读且支持搜索的EPUB。第一步是扫描预处理。我先用Umi-OCR做了整本识别把每一页变成带文字的DOCX。这一步跑了大概四十分钟主要时间花在识别模型计算上软件全程本地运行电脑能正常干别的事。第二步是在Word里做初步清洗。我把识别出来的文本打开顺手处理了几件事删掉页眉页脚把代码片段从正文里单独提出来表格内容检查一遍然后将所有的章节标题设置成“标题1”或“标题2”。因为后续要进Sigil生成目录标题样式是绕不开的基础工作。第三步是导入Sigil排版。我把清洗后的章节按照一级标题顺序复制进Sigil重新生成了目录补上封面和元数据运行EPUB校验没有报错。到这一步一本原生的EPUB已经可以用了文件不足1MB内容结构和搜索功能都齐了。第四步是用Calibre导出成不同设备的格式。朋友在平板上看我直接导出EPUB他车里还有一个墨水屏设备我又顺手导了一个MOBI。全部转换过程都在本地完成导出文件拷到设备里插上就用全程没有经过任何中转服务器。整个流程下来花了大半天其中大部分时间是人工清洗文本。但成品规格很扎实目录能跳转、文字能重排、内容能搜索两百多页的资料拽在手机里随时翻离线不愁没网。这套流程我后来也用来整理自己手头的旧论文、操作手册和各种课堂笔记思路大同小异。6. 常见问题与排查技巧实录工具用到一定熟练度之后大多数问题其实都出在很具体的小地方。我把这几年遇到的高频问题和排查思路整理成一个速查表算是给后来人省点时间。现象常见原因我的排查和处理办法转换后的EPUB在阅读器上打不开EPUB内部文件缺少或CSS语法错误用Sigil按F7跑EPUB校验看具体报错项目录跳转失效标题层级混乱或没有重新生成导航回到Sigil检查各级标题标签再自动生成目录导出的PDF字体明显发虚原始内容使用了非常规字体且未嵌入在Calibre转换时选择嵌入字体或在Sigil里统一字体OCR识别结果出现大段乱码扫描件分辨率低或双栏排版干扰重新扫描到300DPI分栏后再识别中文内容在最新版阅读器里显示为方框缺少字符集声明在Sigil元数据里把语言设为zh检查HTML是否带UTF-8声明转换大文件时卡死图片分辨率太高或书本页数过多先用工具将图片压缩再跑Calibre转换封面在部分设备上不显示封面元数据类型设置不对在Sigil元数据编辑器重新指定封面图像6.1 导出后字体、图片丢失和乱码的排查字体和图片问题占了电子书制作问题的一大半。图片丢失多数是因为文件路径写错或者图片实际不在EPUB包内重新在Sigil文件树里确认一下就行。字体乱码则大概率是字符编码问题按上面的表格先检查语言选项和字符集声明再考虑要不要嵌入字体。如果是在手机上看我一般会把原始CSS里过于花哨的装饰性样式全部清掉只保留段落、行距、margin这些基础规则兼容性会好很多。6.2 为什么转换后的EPUB在有些阅读器里排版乱糟糟很多阅读器尤其是电子墨水屏设备对CSS的支持是比较保守的。复杂的选择器、网格布局、CSS变量这些东西在网页浏览器里没问题到了阅读器里就可能整个失效。我的做法是在Sigil阶段就把样式尽量写简单要么用内联的简单class要么干脆只用基础标签样式。如果你收到的文件是从某个在线转换站生成的里面常常带一堆冗余样式建议先用Sigil的清理工具跑一遍再说。6.3 收藏整理电子书时的版权边界最后忍不住多说一句。本地工具给了我们很大的便利但便利不等于可以乱用。我自己整理电子书处理的全是自己手头有权使用的材料比如自己写的文档、购买的正版资料、学校或公司授权使用的内部材料。那些来源不明、未授权的扫描书转成电子书之后拿出去传播这是无论如何都要避免的。工具本身没有对错怎么用是各人的选择但尊重原创、守住边界是我们做这件事的前提。做电子书这几年我最大的体会是文本的可维护性比任何花哨的排版都重要。排版可以后期再调但内容一旦被锁死在不可编辑的格式里想改一个字都难。所以我现在所有工作流的第一原则都是“先拿到干净文本再做呈现”Sigil、Calibre和本地OCR恰好都在围绕这个原则干活。希望这套经验能帮你少走些弯路把那些躺在硬盘角落里吃灰的旧资料真正变成随身可读的离线书。