☰
本地软件三件套:Sigil+Calibre+OCR,打造离线电子书工作流
2026/9/28 15:48:08 网站建设 项目流程

做电子书这事,我前前后后折腾过不少工具,最早也是图省事,直接把文档丢在线网站转格式。结果有一次传一个二十多万字的文稿,上传等了半天不说,心里还老嘀咕内容会不会被存到别处。从那以后我就彻底转向本地软件了,反正现在桌面端能干的活远比我想象的多。

我现在固定下来一套三件套: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到底能做什么?为什么不用Word?

EPUB的内核是一个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_sim+eng

它会调用简体中文和英文混合模型,把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恰好都在围绕这个原则干活。希望这套经验能帮你少走些弯路,把那些躺在硬盘角落里吃灰的旧资料,真正变成随身可读的离线书。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询