SnapOtter OCR使用教程:从图片与PDF提取文字,支持21种语言的完整指南
【免费下载链接】SnapOtterOpen-source, self-hosted file-processing tool. Convert, compress, OCR, transcribe & run local AI across image, video, audio, PDF & documents, via UI, REST API & pipelines. Your files never leave your network.项目地址: https://gitcode.com/gh_mirrors/st/SnapOtter
SnapOtter 是一款开源、可自托管的文件处理工具,内置 OCR 文字识别功能,能把扫描图片、截图和 PDF 文档中的文字提取成可编辑的.txt文本文件。所有识别都在你自己的服务器上本地完成,文件不离开内网,隐私安全有保障。本教程带你从零开始,快速掌握图片 OCR、PDF OCR 的使用方法、质量档位选择与多语言设置,新手也能 5 分钟上手。
📌 SnapOtter OCR 是什么?
OCR(光学字符识别)就是"把图片里的字变成文字"。SnapOtter 的 OCR 工具支持两种输入场景:
| 工具 | 输入 | 输出 | 说明 |
|---|---|---|---|
| 图片 OCR | JPG / PNG / WebP 等图片 | 原名_ocr.txt | 识别单张扫描图、截图、票据 |
| PDF OCR | PDF 文档 | 原名_ocr.txt | 识别扫描件 PDF,可指定页码范围 |
两种工具都可以通过网页界面或REST API使用,输出统一为纯文本,方便后续复制、编辑或接入流水线。
🚀 3 步从图片提取文字(最快方法)
第 1 步:打开 OCR 工具启动 SnapOtter 后,在网页端工具列表的"图片工具"分类中找到OCR,或直接访问 API 端点POST /api/v1/tools/image/ocr上传文件。
第 2 步:上传图片并选择设置上传一张清晰的照片或扫描图,在设置面板中配置三个核心选项:
- quality(质量档位):
fast/balanced/best,下文详述 - language(语言):
auto自动检测,或手动指定en、zh、ja等 - enhance(图像增强):对模糊、低对比度图片自动预处理
第 3 步:等待任务完成并下载文本提交后系统返回任务 ID 并实时推送进度,完成后即可下载xxx_ocr.txt文本文件。
相关实现可参考 ocr.ts,其中定义了 OCR 的上传校验、设置参数与任务入队逻辑。
📄 PDF OCR:指定页码,批量提取文字
扫描件 PDF 无法直接复制文字,PDF OCR 工具正好解决这个痛点。
使用步骤:
- 在"PDF 工具"分类中打开PDF OCR(API 端点
POST /api/v1/tools/pdf/ocr-pdf) - 上传 PDF 文件(⚠️ 不支持加密/密码保护的 PDF,系统会直接拒绝)
- 在
pages参数中指定处理范围:all表示全部页面,也可填写页码范围只提取需要的部分 - 语言与质量档位与图片 OCR 完全一致
PDF 的识别流程是先把选定页面渲染成图像,再交给 OCR 引擎逐页识别,结果在 ocr-pdf.ts 中定义。识别完成后,返回结果还会附带本次使用的引擎、设备(CPU/GPU)与模型版本等元数据,便于排查识别效果问题。
⚙️ 如何选择合适的 OCR 质量档位?
SnapOtter 提供三档识别质量,对应不同的引擎与精度:
| 档位 | 引擎 | 速度 | 适用场景 |
|---|---|---|---|
| Fast | Tesseract | ⚡ 最快 | 日常清晰图片,快速批量处理 |
| Balanced | 高精度 OCR 运行时 | 中等 | 复杂排版、需要更高准确率 |
| Best | 高精度 OCR 运行时 + 图像增强 | 较慢 | 模糊扫描件、低质量票据 |
选择建议:
- 默认不填
quality时,系统会根据你安装的运行时自动选择(有高精度运行时则用best,否则用fast) - Best 档位默认开启图像增强,适合模糊、低对比度的文档
- 兼容旧版参数:传
engine: "tesseract"等价于fast,engine: "paddleocr"等价于balanced - ⚠️Fast 档位不支持韩语,识别韩语请安装高精度 OCR 运行时并选择 Balanced 或 Best
档位解析逻辑见 resolveWorkerQuality,底层识别调度见 ocr.ts。
🌍 支持的语言与自动语言检测
OCR 工具的language参数支持以下选项:
- auto(自动检测):无需手动判断,系统会先探测图片文字脚本,再选择对应语言包识别
- en(英语)、de(德语)、fr(法语)、es(西班牙语)
- zh(简体中文)、ja(日语)、ko(韩语,需高精度运行时)
自动检测是 SnapOtter OCR 的亮点之一:对于中英文混排的票据、地址、价格等真实场景,引擎会综合脚本密度与置信度打分,而不是简单取"出现最多的文字类型",避免把英文收据上的零星汉字误判成中文文档。语言映射与自动检测的核心逻辑在 tesseract.ts 与 tesseract-languages.ts 中实现,识别前的图像预处理见 ocr_preprocess.py。
小提示:能确定语言时手动指定,比auto更快也更准;不确定时放心用auto。
❓ 常见问题排查
Q1:上传失败,提示文件过大?OCR 输入有安全上限:图片像素上限约 4000 万(单边不超过 40000 像素),识别输出上限 1MB 文本。超大图片请先压缩再上传。
Q2:提示"Feature not installed"或"Feature incompatible"?Balanced / Best 档位需要额外的高精度 OCR 运行时组件。请在设置中安装对应的 OCR 功能包(可选组件包),或改用fast档位。相关配置参考 ocr-runtime-models.json。
Q3:识别结果有乱码或漏字?
- 勾选
enhance开启图像增强 - 换用更高质量的图片(清晰度、对比度)
- 切换
balanced/best档位
Q4:能批量处理多个文件吗?可以。SnapOtter 支持批量上传与流水线(Pipeline),把 OCR 串入"下载 → 识别 → 导出"的自动化流程中,详见 pipeline.ts。
📚 延伸阅读
- OCR 图片识别路由:apps/api/src/routes/tools/ocr.ts
- OCR PDF 识别路由:apps/api/src/routes/tools/ocr-pdf.ts
- OCR 引擎核心库:packages/ai/src/ocr.ts
- PDF 页面渲染与识别:packages/ai/src/tesseract-pdf.ts
- 最佳档位模型校准配置:docker/ocr-best-v1-calibration.json
- 部署配置:docker/Dockerfile
现在你已经掌握了 SnapOtter OCR 的完整用法——从单张图片到整份 PDF,从快速识别到高精度多语言提取,全部在本地网络内安全完成。试试上传你的第一份扫描件吧!
【免费下载链接】SnapOtterOpen-source, self-hosted file-processing tool. Convert, compress, OCR, transcribe & run local AI across image, video, audio, PDF & documents, via UI, REST API & pipelines. Your files never leave your network.项目地址: https://gitcode.com/gh_mirrors/st/SnapOtter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考