Umi-OCR 双层PDF转换指南:6步把扫描PDF变成可搜索文档
【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR
几十页的扫描 PDF,能翻能看,就是搜不到、复制不了,找一句话只能一页页肉眼看。Umi-OCR 双层 PDF 转换能帮你解决:免费、开源、全程离线,把扫描件批量变成可搜索、可复制的文档。下面带你走通四件事:先搞懂原理,再 6 步操作,接着调参数与批量自动化,最后附一份排查清单。
搞懂双层PDF的原理
扫描 PDF 的本质是一叠图片,文字以像素形式"烧"在图像里,电脑只看得见色块、读不出字。双层 PDF 的做法很朴素:底层原样保留扫描图像,观感、打印都不变;上层再叠一层透明的文字,肉眼看不见,但复制、搜索、摘录全都解锁了。这就像给照片配了一层隐形字幕——画面没动,机器却已经读得懂了。
| 方案 | 能否搜索 | 能否复制 | 版式还原 | 是否联网 |
|---|---|---|---|---|
| Umi-OCR 双层 PDF | 能 | 能 | 完整保留 | 全程离线 |
| 纯扫描 PDF | 否 | 否 | 完整 | 不联网 |
| 在线 OCR 转纯文本 | 能 | 能 | 基本丢失 | 需联网 |
"全程离线"对档案、合同这类敏感资料尤其关键——识别引擎装在本机,断网照样跑。
6步拿到第一份双层PDF
第 1 步 解压即用:从发布页下载Umi-OCR_Rapid_v2.1.5.7z,解压后双击Umi-OCR.exe启动。免安装、免配置,绿色运行,适合在别人的电脑上即用即走。
第 2 步 打开"文档识别"标签页:主界面是标签页结构,点开"文档识别"页,把要转的 PDF 拖进左侧文件列表。支持批量拖入几十个文件,也兼容 epub、mobi、cbz 等电子书格式。
第 3 步 设输出为双层 PDF:右侧设置面板把"保存格式"设为"双层 PDF"(只要文字、不在乎版式可选手动单层文本 PDF),并把"识别语言"切到文档对应语言。前者决定结果能否搜索,后者决定识别准不准,别让默认配置硬扛不合适的语言。
第 4 步 框掉页眉页脚(可选):点"忽略区域",用鼠标框选每页顶部的页眉、底部的页码,还能指定生效的页码范围。杂讯去掉后,导出的正文会干净一个台阶。
第 5 步 开始任务并验收:点"开始任务",右侧逐页显示进度。去输出目录打开生成的 PDF,先用 Ctrl+F 搜一个词验证"可搜索"是否生效,再随机抽几页目测图像清晰度,确认无误即完成。
识别效果不够好时怎么调
遇到中英混排文档识别不准,把"识别语言"切到含英文的模型库,准确率会明显提升,软件内置简中、繁中、英、日、韩、俄语等多国语言。
遇到双栏论文、报纸阅读顺序错乱,"排版解析方案"默认"多栏-按自然段换行"一般能自动分栏;个别乱排就换成"单栏-总是换行",扫描版代码截图则选"单栏-保留缩进"保留行首缩进。
遇到大分辨率扫描件识别偏慢或精度不足,把"限制图像边长"调高(默认 960 更快,调到 2880 或 4320 可提升大图精度),按文件实际清晰度取一个平衡值即可。
遇到只想识别中间某几页,设"OCR 页数起始/结束"跳过无关页,配合忽略区域的页码范围,可对超长文档做精细的分段处理。
💡 这些设置都在"文档识别"页右侧面板,改动即时生效;建议先拿一两页试跑,确认效果再批量执行。
批量转换的进阶用法
前提:在"全局设置"中保持"允许 HTTP 服务"开启(默认开启),本机服务监听端口1224。完整接口说明见 docs/http/api_doc.md,可直接运行的示例见 docs/http/api_doc_demo.py。整体流程是:上传文件 → 轮询任务状态 → 生成目标文件取下载链接 → 下载并清理任务;任务若不清理会在 24 小时后自动清理。
import requests, time, json S = "http://127.0.0.1:1224" r = requests.post(f"{S}/api/doc/upload", files={"file": open("a.pdf", "rb")}) tid = json.loads(r.text)["data"] while not json.loads(requests.post(f"{S}/api/doc/result", json={"id": tid}).text)["is_done"]: time.sleep(1) d = json.loads(requests.post(f"{S}/api/doc/download", json={"id": tid, "file_types": ["pdfLayered"]}).text) open("out.pdf", "wb").write(requests.get(f"{S}{d['data']}").content) requests.get(f"{S}/api/doc/clear/{tid}")把这套逻辑套进循环,整个文件夹的扫描件几分钟就能批量转完;结果除 PDF 外还支持 txt、csv、jsonl,方便对接下游系统。
常见问题排查清单
⚠️双层 PDF ≠ 可编辑文档。文字层是透明的,用来检索与复制,双击不会出现光标让你改字;想要带样式的 Word 或可编辑 PDF,那是另一个需求方向,动手前先想清楚目标格式。
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 转换后文字与图像位置错位 | 老版本解析带旋转页面时坐标有误 | 升级到 v2.1.5 再试;仍不行检查是否含旋转页,或改用"整页强制 OCR" |
| 任务卡在等待状态 | 加密 PDF 没填密码,或文件本身损坏 | 在参数里填文档密码;异常先看UmiOCR-data/logs日志定位到哪一页 |
| 大批量任务吃满内存 | 引擎默认占用不超过系统内存一半,低配机器仍可能紧张 | 全局设置里调低引擎线程数与内存上限,宁慢勿崩 |
| 结果里混进页眉页码 | 没设忽略区域 | 用"忽略区域"框选页眉页脚,并指定生效页码范围 |
总结
一句话:懂原理 → 会操作 → 能调优 → 可批量 → 会排查,一条完整的"扫描件数字化"工作流,全程离线免费。除双层 PDF 外,Umi-OCR 还自带截图 OCR(快捷键截屏即识别)、批量图片 OCR,以及支持 19 种码制的二维码扫描/生成,命令行调用见 docs/README_CLI.md。现在就下载解压,挑一份最头疼的扫描 PDF 按上面 6 步走一遍,很快就能拿到第一份可搜索文档。
【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考