【免费下载链接】Docufinder
Anything — 파일 이름이 아니라 본문으로 찾는 문서 검색기. HWP·PDF·Office 전문 검색을 오프라인으로. Windows·macOS | Offline content search across Korean documents (HWP, PDF, Office). Windows and macOS
Docufinder是一款 100% 本地运行的文档内容搜索引擎,它的核心能力之一就是扫描版 PDF 全文搜索:通过内嵌的 PaddleOCR(DBNet 文本检测 + SVTR 文字识别)把纯图片页"读"成文字,再写入本地索引,让关键词、文件路径、日期过滤器全部生效。无需把 PDF 上传到任何云端 OCR 服务,扫描件、图片版合同、老旧报表都能像文本型 PDF 一样被直接搜到。
为什么扫描件搜不到内容?
普通 PDF 的每一页都内嵌一层"文字层",搜索引擎可以直接提取。而扫描版 PDF本质是一张张图片:
- 页面上没有任何可提取的文字,右键"复制"一无所获;
- 传统全文索引只会建出一个空索引,怎么搜都没有结果;
- 多栏排版、页眉页脚还会让简单拼接的 OCR 文本左右串栏、夹带噪音。
Docufinder 的做法是:索引时自动识别出"没有文字层"的页面,把这些页面栅格化成图片,交给本地 OCR 引擎识别,再把结果并入 SQLite FTS5 全文索引。
Docufinder 的扫描 PDF 处理流程
整个流程在src-tauri的 Rust 后端完成,纯本地 ONNX Runtime 推理,无外部进程、无网络依赖(src-tauri/src/ocr/mod.rs):
- 扫描页判定:PDF 解析器对每一页先尝试提取内嵌文字,若可提取字符数少于 10 个或判定为乱码,即认定该页为扫描页(src-tauri/src/parsers/pdf.rs#L27-L33 中的
SCANNED_PAGE_CHAR_THRESHOLD常量); - 混合处理:同一份 PDF 里"文本页走直接提取、扫描页走 OCR",互不干扰,文字型页面不浪费 OCR 算力;
- PaddleOCR 两步识别:DBNet 检测模型先框出所有文本区域(
detection),SVTR 识别模型逐区域识别并做 CTC 解码(recognition),坐标几何裁剪见geometry模块; - 安全护栏:单文件最多 OCR 20 页、文件上限 100MB、图片宽度上限 2000px,防止超大扫描文档拖垮索引。
💡 这些模型文件已包含在安装包里(v3.4.3+),开箱即用,运行过程中不会联网下载 OCR 相关文件。
版面分析:让多栏扫描件也按正确顺序被搜索
单纯 OCR 有一个通病:双栏文档会"左栏读一半、右栏读一半",页眉页脚还会混进正文。Docufinder 在设置中提供了**实验性的"版面分析"**选项,基于 PP-DocLayout ONNX 模型(约 22MB,首次开启时下载一次):
- 阅读顺序恢复:通过 XY-Cut 算法对文本区域排序,双栏、多栏扫描件按人类阅读顺序重组(src-tauri/src/ocr/reading_order.rs);
- 区域分类:把页面划分为正文、标题、列表、表格、图片、说明文字、页眉、页脚、页码等区域(src-tauri/src/ocr/layout.rs);
- 噪音过滤:页眉、页脚、页码在达到置信度阈值后从正文索引中剔除,搜索"页码数字"不再刷屏。
完整设计思路可阅读 docs/OCR-LAYOUT-DESIGN.md。
开启扫描 PDF 全文搜索的 3 个步骤
第一步:添加文件夹并等待索引
运行 Docufinder,左侧点击"添加文件夹"选中存放扫描件的目录(安装与目录管理流程参考 docs/install-guide.jpg)。
第二步:设置 → 搜索 选项卡,打开 OCR 开关
在 src/components/settings/tabs/SearchTab.tsx 对应界面中:
- 打开OCR开关(
ocr_enabled)——扫描件与图片(jpg/png/tiff 等)才会被识别建索引; - 需要更干净的结果时,再打开其下方的版面分析(实验性)(
ocr_layout_enabled)。
第三步:触发重新索引并验证
新开启 OCR 后,界面对已索引过但从未做过 OCR 的文件夹会提示"重新索引",点击确认即可。完成后在搜索框输入扫描件里的任意关键词(如预算、签收),命中文档会出现在结果列表中,点击即可预览对应内容。
🔎小技巧:结合关键词模式的运算符还能进一步缩小范围,例如ext:pdf只搜 PDF,path:合同限定文件夹,after:2024-06限定修改时间。
常见问题
Q1:OCR 会不会把我的文件上传到云端?
不会。OCR 使用本地 ONNX 模型,识别、索引、搜索全部发生在你的电脑上;只要不开启可选的 AI 问答功能,整个产品不存在任何文档外传路径。
Q2:一份 300 页的扫描 PDF 会全部被 OCR 吗?
不会。每份文件最多处理前 20 个扫描页(MAX_OCR_PAGES),且跳过超过 100MB 的文件,这是为了保证索引速度可控;正文文字型页面不受此限制。
Q3:为什么打开 OCR 后,旧文档搜不到?
OCR 是在索引阶段执行的,此前已索引的 PDF 没有跑过识别。按界面提示对这些文件夹执行一次重新索引即可,之后新增文件会实时自动处理。
Q4:识别结果偶尔有错字怎么办?
OCR 准确率取决于扫描件质量(分辨率、倾斜度、噪点)。开启版面分析通常能显著改善多栏和页眉干扰问题;对关键文档建议保持原文件 150dpi 以上再扫描。
核心模块路径速查
| 模块 | 路径 |
|---|---|
| OCR 引擎(PaddleOCR ONNX 编排) | src-tauri/src/ocr/mod.rs |
| 版面分析与区域分类 | src-tauri/src/ocr/layout.rs |
| 阅读顺序(XY-Cut) | src-tauri/src/ocr/reading_order.rs |
| 扫描 PDF 解析与阈值 | src-tauri/src/parsers/pdf.rs |
| 图片 OCR 解析器 | src-tauri/src/parsers/image_ocr.rs |
| 模型下载与校验 | src-tauri/src/model_downloader.rs |
| OCR/版面分析开关界面 | src/components/settings/tabs/SearchTab.tsx |
| 版面分析设计文档 | docs/OCR-LAYOUT-DESIGN.md |
总结
让扫描件"可搜索"只需两件事:本地 OCR 识别+版面顺序恢复。Docufinder 将 PaddleOCR 与 PP-DocLayout 打包进 Windows / macOS 桌面应用,全程离线、按页混合处理、带性能护栏,配合 FTS5 全文索引和预览定位,扫描件从此不再是搜索盲区。只需"添加文件夹 → 打开 OCR → 重新索引"三步,你积累多年的图片版 PDF 就能按正文关键词被秒级搜出。
【免费下载链接】Docufinder
Anything — 파일 이름이 아니라 본문으로 찾는 문서 검색기. HWP·PDF·Office 전문 검색을 오프라인으로. Windows·macOS | Offline content search across Korean documents (HWP, PDF, Office). Windows and macOS
相关推荐
OCRmyPDF 实战指南:为扫描版 PDF 添加可搜索 OCR 文本层
OCRmyPDF 实战指南:为扫描版 PDF 添加可搜索 OCR 文本层 本文以每日精选收录的开源工具 OCRmyPDF 为核心,系统讲解如何将「只有图片、无法
文档技术博客知识库OCRmyPDF技术解析:如何为扫描版PDF添加可搜索文本层
OCRmyPDF技术解析:如何为扫描版PDF添加可搜索文本层 项目概述 OCRmyPDF是一款基于Python开发的PDF处理工具,其主要功能是为扫描图像生成的
OCRCLI如何用 OCRmyPDF 为扫描版 PDF 添加可搜索的 OCR 文字层
如何用 OCRmyPDF 为扫描版 PDF 添加可搜索的 OCR 文字层 扫描得到的 PDF 往往只是逐页图像:文字无法选中、无法搜索、无法复制。OCRmyPD
OCRCLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考