无文字层 PDF 的 OCR 识别 —— 让扫描书"活"过来
问题:纯图片扫描书
很多老旧 PDF 扫描书(特别是古籍、老杂志、手写材料)没有文字层——它们本质上就是一张张图片。结果:
- 不能选中文字
- 不能查词
- 不能搜索
- 只能放大缩小看图片
KOReader 内置的 OCR(光学字符识别)能把"图片里的文字"变出来。
OCR 是什么
OCR 就是让软件"看图识字"——把图片中显示的文字识别为可选中、可复制的文本。KOReader 使用开源的 Tesseract 引擎,社区维护的多语言识别包。
操作方法
- 打开无文字层的 PDF/DjVu
- 进入「文档设置」
- 找到「OCR 识别」或类似选项
- 选择要识别的语言(中文、英文等)
- 点击开始识别
识别完成后:
- KOReader 为 PDF 添加了隐藏的文字层
- 文字层与图片位置精确对齐
- 现在可以选中文字、查词、搜索了
支持的识别语言
KOReader 的 OCR 引擎(Tesseract)支持百余种语言:
- 中文:简体(chi_sim)、繁体(chi_tra)
- 英文(eng)
- 日文(jpn)
- 韩文(kor)
- 法/德/西/俄(fra/deu/spa/rus)等
首次使用需要下载对应语言的 OCR 数据包,大小通常 20~50 MB。
识别质量
OCR 识别质量受以下因素影响:
| 因素 | 好 | 差 |
|---|---|---|
| 扫描质量 | 清晰、无噪点、无模糊 | 低分辨率、糊、有噪点 |
| 文字大小 | ≥ 10pt | ≤ 8pt |
| 字体复杂度 | 宋体、黑体 | 手写、艺术字、草书 |
| 语言 | 单一语言 | 中英混排、多语言 |
| 排版 | 单栏、整齐 | 双栏、复杂版心 |
实际效果:
- 清晰的扫描本:识别率 > 95%
- 老书扫描件:识别率 70~90%
- 古籍手写:识别率可能 < 50%(需要专门的手写 OCR 模型)
识别后的验证和编辑
识别不是完美的。KOReader 允许你在识别后:
- 手动修正错误识别的文字
- 合并或拆分误判的文字块
- 标记"这一页识别不准"
OCR + K2pdfopt 重排的黄金组合
如果你的扫描书质量不错,推荐完整流程:
1. 扫描 PDF(无文字层)
2. 自动裁边 + 倾斜校正(整理版面)
3. OCR 识别(生成文字层)
4. K2pdfopt 重排(变成流式文字)
5. 调整字号/行距(舒适阅读)
经过五步处理,一本只能"看"的扫描书,变成了和正版 EPUB 一样可查、可高亮、可笔记的富文本。
OCR 不联网
KOReader 的 OCR 完全是本地离线的——Tesseract 引擎和语言包都安装在设备上,不需要云 API,不发送任何数据到网络。
常见问题
识别太慢了?
这取决于设备性能和文档页数。Android 手机和 Linux 桌面(CPU 好的)识别速度快;Kindle/Kobo 等嵌入式设备识别较慢。第一次识别完成后,结果会被缓存,不用每次重跑。
识别后还是选不中文字?
确认 OCR 语言包与文档语言匹配——中文文档用了英文识别包肯定不行。在「OCR 设置」里切换语言重新识别。
不想 OCR 了?
识别结果存储在 KOReader 配置目录下的缓存文件里。删除该文件或在「文档设置 → OCR」中点击清除即可恢复为纯图片模式。
继续阅读
- K2pdfopt 重排 —— K2pdfopt 重排引擎
- 第九章 进阶玩法 —— 安装 OCR 语言包
- 裁边校正 —— 裁边与倾斜校正