☰
Umi-OCR 双层PDF识别指南:离线转换一步到位
2026/10/11 1:19:45 网站建设 项目流程

Umi-OCR 双层PDF识别指南:离线转换一步到位

【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR

你有没有遇到过这种 PDF:三百页扫描件,全选复制是空白,Ctrl+F 搜不到词,只能对着屏幕逐字核对。Umi-OCR 是开源免费的离线 OCR 工具,主打把扫描 PDF 变成双层可搜索 PDF,断网也能跑,文件全程不上传。

能力速览:双层PDF 和在线转换差在哪

方案能否离线排版保真上手成本费用
在线转换网站❌ 需联网上传丢失(只剩纯文本)低按次 / 会员
手动逐页复制✅丢失严重高(最费时)无
命令行 OCR 工具✅部分保留高(要配环境)免费
Umi-OCR 双层PDF✅ 全程离线完整(图像+文字双层)低(解压即用)免费

双层 PDF 的思路是在每页扫描件上叠一层透明文字层:你看到的还是原图,但搜索、复制都作用在文字层上,版式一点不丢。它和"导出纯文本"的区别,就在这层"看得见、却改不了"的文字。

装与启动:解压即用,免配置

从发布页下载Umi-OCR_Rapid_v2.1.5.7z,解压后双击Umi-OCR.exe即可启动;绿色便携、免安装、免配置,Windows 7 与 Linux x64 都能跑;首次启动按系统语言自动切换界面,也可以到"全局设置"里改语言、主题,或勾选开机自启。

核心工作流:把一批扫描件变成可搜索 PDF

围绕"把一份扫描 PDF 变成可搜索 PDF"这条任务,整条链路分四个阶段,全部在"文档识别"标签页里完成。

导入文件,选好格式。打开"文档识别"标签页,把 PDF 拖进左侧文件列表,支持一次拖入几十个;右侧把保存格式设成"双层 PDF"。之所以先批量导入,是因为任务按队列跑,一次提交比零散提交省事。注意:它同时认 pdf、epub、mobi、cbz 等格式,别只盯着 PDF。

参数保持默认,先跑通一次。识别语言、排版解析、页数范围都先用默认值,直接点"开始任务",右侧会显示逐页进度。本地 CPU 下单页通常 1~3 秒,几百页一般十几分钟内跑完。先跑通再调参,能少走弯路。

验收:搜得到才算数。去输出目录打开生成的 PDF,按 Ctrl+F 搜一个你确定出现过的词,能搜到说明文字层生效了;再随机翻几页看图清不清晰。注意:能搜到、但图上字对不上位,多半是旋转页或引擎版本问题,见后面"边界与局限"。

要批量就交给 HTTP 接口。文件多到按"批"算时,别手动拖了,用本地 HTTP 接口自动跑。流程固定四步:上传 → 轮询状态 → 取下载链接 → 清理任务,接口细节见 HTTP 接口文档。

值得深挖的 3 个功能点

🔍 排版解析方案:输出怎么调才可读

它解决"识别出来的字,顺序乱、读着累"的问题。排版解析负责自动识别分栏、还原阅读顺序,决定导出文本能不能直接用。怎么调:在设置里选"排版解析方案",默认多栏-按自然段换行适合大部分文档;遇到代码截图或等宽排版,切到单栏-保留缩进能保住缩进和行内空格。建议值:普通文档用默认,代码、日志类用单栏-保留缩进。

📌 忽略区域:框掉页眉页脚与水印

它解决"每页都有抬头、页码、水印,导出的文本脏得没法用"的问题。怎么调:点"忽略区域",在页面上按住右键画矩形框,把页眉、页脚、水印圈进去,还能指定这些框生效的页码范围;只有整个落在框里的文字块会被丢弃,不会误伤旁边的正文。建议值:框尽量画大一点,完全包住水印可能出现的所有位置。

🔌 HTTP 接口:文件多到按批算时

它解决"几十个、上百个文件,手动一个个拖太慢"的问题。只要 Umi-OCR 在运行且开启了 HTTP 服务(默认端口 1224、仅本地),就能用代码把识别串起来。下面这段 8 行可直接改用:

import requests, time # 依赖 requests 库 BASE = "http://127.0.0.1:1224" # Umi-OCR 本地服务地址 tid = requests.post(f"{BASE}/api/doc/upload", files={"file": open("a.pdf","rb")}).json()["data"] # 上传PDF,取任务ID while True: # 轮询任务状态,直到识别完成 if requests.post(f"{BASE}/api/doc/result", json={"id": tid}).json()["is_done"]: break time.sleep(1) url = requests.post(f"{BASE}/api/doc/download", json={"id": tid, "file_types": ["pdfLayered"]}).json()["data"] # 取双层PDF下载链接 open("out.pdf","wb").write(requests.get(f"{BASE}{url}").content) # 下载并保存结果

建议值:主机保持"仅本地",file_types填pdfLayered(要纯文本就填txtPlain)。

边界与局限:它做不到的事

  • 双层 PDF 不是可编辑文档。文字层服务检索和复制,不能像 Word 那样改字。要改内容就另导一份纯文本(txtPlain)再处理。
  • 重度倾斜的扫描页可能错位。识别出的文字位置与原图对不齐时,v2.1.2 起已修复旋转页坐标问题;仍错位就选"整页强制 OCR"(doc.extractionMode设为fullPage)或先校正页面。
  • 大批量会吃内存,加密文档会卡住。引擎默认把内存压在系统总内存的一半以内,几百页大文件在低配机上可能卡顿;加密 PDF 会一直停在等待状态。绕行:全局设置里调低引擎线程数与内存上限;加密文档在上传参数里填password。

速查表:参数、默认值与推荐值

关键参数默认值推荐值文档路径
保存格式file_typespdfLayered双层可搜索 PDFdocs/http/api_doc.md
识别语言ocr.language简体中文按文档语言选,中英混排选含英文库docs/http/api_doc.md
排版解析tbpu.parsermulti_para代码、日志用 single_codedocs/http/api_doc.md
限制图像边长ocr.limit_side_len960大图求精度用 2880docs/http/api_doc.md
内容提取doc.extractionModemixed纯扫描件用 fullPagedocs/http/api_doc.md
HTTP 端口 / 主机1224 / 仅本地保持仅本地,断网可用docs/http/README.md

Umi-OCR 把"保留原图、叠上文字层"做到了解压即用、断网可跑——扫描件数字化的离线解法,就是它。

【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

立即咨询