Umi-OCR 双层PDF转换:离线免费,从首次上手到批量自动化的完整指南
【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR
从扫描版PDF里复制一句话,你会发现选中工具连一个字符都框不住——这份"只可远观"的文档,正是很多档案、合同和教材电子化后的尴尬处境。Umi-OCR 是一款免费、离线运行的OCR工具,能把扫描PDF批量转成可搜索、可复制的双层PDF,全程无需联网,也不向任何云端发送文件。
双层PDF如何"被电脑读懂":离线可搜索文档的原理
扫描PDF对计算机来说就是一摞照片:每个"字"只是若干像素的堆砌,所以搜索框里永远查无此词,复制按钮也形同虚设。双层PDF的做法是在原图之上附加一条隐形的"字幕轨"——画面你看到的一像素都不变,但每一页都挂着一份机器能读的文字轨。Ctrl+F 查的是字幕轨,复制粘贴取的也是字幕轨,而打印出来的依旧是原始扫描画面。
| 处理方式 | 全文搜索 | 复制文字 | 原始版式 | 是否依赖网络 |
|---|---|---|---|---|
| 纯扫描PDF | 无法 | 无法 | 原样保留 | 否 |
| 识别后只存文本 | 可以 | 可以 | 基本丢失 | 多数工具需要 |
| Umi-OCR 双层PDF | 可以 | 可以 | 原样保留 | 否,引擎装在本地 |
📌 识别引擎是以本地插件形式随软件分发的(PaddleOCR、RapidOCR 两种可选),断网环境下同样工作——这对不能出内网的资料尤其重要。
4步快速上手:从扫描件到可搜索PDF的最短路径
- 解压启动。拿到
Umi-OCR_Rapid_v2.1.5.7z后解压,双击Umi-OCR.exe即可运行,没有安装向导。 - 放入文件。打开"文档识别"标签页,把PDF直接拖进左侧文件列表;
pdf、xps、epub、mobi、fb2、cbz都支持,几十个文件一次拖入也没问题。 - 配置并开跑。右侧把保存格式选为"双层可搜索PDF",识别语言切到文档对应的语言,点击"开始任务"。
- 验收。打开输出目录里生成的文件,按 Ctrl+F 搜一个你确定存在的词——能命中,说明文字轨已经生效。
💡 只想要纯文字、不在乎版式的场景,保存格式可改选"单层纯文本PDF",文件会小得多。
按场景调参:语言、版式与体积的关键配置
处理中英混排的论文与教材语言库是最先要动的开关:默认配置未必覆盖文档主体语言,切到对应的多国语言库(繁中、日、韩、俄等均已内置)后准确率差距很明显。
处理双栏排版的报纸、期刊保持排版解析为"多栏-按自然段换行",软件会先分栏、再按阅读顺序拼接段落,导出的文本基本不需要二次整理。而扫描版代码、日志文档请改选"单栏-保留缩进",行首空格与层级缩进会被完整保留。
处理大文件与超长文档用"OCR页数起始/结束"跳过封面、目录等无用页面,只对目标区间跑识别;若扫描件分辨率极高,适当调低"限制图像边长"可明显提速。带页眉、页码的文档,再用"忽略区域"框出页眉页脚并指定生效页码范围,正文会干净一个档次。
进阶:用HTTP接口把整个文件夹批量转完
手动拖文件只适合个位数,批量就该交给接口。先确认全局设置中已允许HTTP服务(默认开启,本机端口1224),然后上传、轮询状态、取下载链接、清理任务,四步走完:
import requests, time B = "http://127.0.0.1:1224" with open("scan.pdf", "rb") as f: tid = requests.post(f"{B}/api/doc/upload", files={"file": f}, data={"json": '{"tbpu.parser": "multi_para"}'}).json()["data"] while not requests.post(f"{B}/api/doc/result", json={"id": tid}).json()["is_done"]: time.sleep(1) url = requests.post(f"{B}/api/doc/download", json={"id": tid, "file_types": ["pdfLayered"]}).json()["data"] open("searchable.pdf", "wb").write(requests.get(f"{B}{url}").content) requests.get(f"{B}/api/doc/clear/{tid}")把这段套进文件循环,一个文件夹的扫描件几小时内就能全部完成。上传时json字段还能带上忽略区域、页数范围等参数,效果与图形界面一致。结果除pdfLayered外还能导出txt、csv、jsonl,方便喂给下游流程;不手动清理的任务会在 24 小时后自动释放。完整的请求/响应定义见 HTTP接口详细说明。
转换前的避坑清单:最容易让任务失败的三个配置
⚠️ 这三个坑都在任务开始前就能排掉,比事后查日志省事得多:
- 加密PDF不填密码,任务会一直"等"下去。带文档密码的PDF必须在参数里填入密码再启动任务,否则状态会停留在等待或直接失败——上传前确认一下文件是否加密。
- 旧版本处理含旋转页面的文档会错位。页面旋转相关的坐标与提取问题分别在 v2.1.2、v2.1.5 修复过(详见 更新日志),使用 v2.1.5 或更新版本可一并避开这两类坑。
- 低配机器上高并发调接口。后端对并发支持较弱,并行请求容易得到连接被拒的报错,且长时间连续大批量调用偶发失败,顺序执行、失败重试是更稳的姿势。内存方面引擎默认控制在系统总内存一半以内,低配机器可在全局设置里调低线程数与内存上限,宁慢勿崩。
v2.1.5 起异常日志会写入UmiOCR-data/logs目录,真出了问题按页码定位,比盲猜快得多。
现在就转一份,把剩下的交给自动化
整条工作流其实就一句话:拖入文件 → 选双层PDF → 等任务完成 → 取回可搜索文档,离线、免费、版式不变。现在就去解压,挑一份最头疼的扫描件按上面 4 步走一遍,十几分钟后第一份可搜索文档就会出现在输出目录里。
转完之后值得顺手探索的还有两个"隐藏"入口:截图OCR(快捷键截屏即识别,适合网页里的零散文本),以及二维码标签页(19种码制的识别与生成)。想更进一步把 Umi-OCR 嵌进自己的脚本里,参考 命令行调用手册 即可。
【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考