Paperless-ngx 中文 OCR 完整配置指南:15 分钟配通 chi_sim 中文包与中文日期识别
【免费下载链接】paperless-ngxA community-supported supercharged document management system: scan, index and archive all your documents项目地址: https://gitcode.com/GitHub_Trending/pa/paperless-ngx
财务的扫描件入库了,搜"发票"却一无所获——因为 Paperless-ngx 用的 Tesseract OCR 引擎默认只带英文语言包。本文带你 15 分钟配通中文识别、中文日期提取和界面汉化。
先看基线:默认状态能干什么、干不了什么
最小可用状态用一条 docker run 就能跑起来。
docker run -d \ -p 8000:8000 \ -v /your/data:/usr/src/paperless/data \ -v /your/media:/usr/src/paperless/media \ -v /your/consume:/usr/src/paperless/consume \ --name paperless-ngx \ paperlessngx/paperless-ngx-p 8000:8000:把容器端口映射到宿主机,http://localhost:8000就是界面入口-v /your/data:...:数据库存放位置,升级时不能丢-v /your/media:...:文档原件和缩略图的存放位置-v /your/consume:...:收件箱,文件丢进去自动 OCR 并入库
启动后打开页面,默认配置下是这样的:
| 默认能干什么 | 默认干不了什么 |
|---|---|
| 英文 PDF、图片入库可搜 | 中文内容识别,搜"发票"必空 |
| 文件进 consume 自动 OCR | 从"2026年8月30日"提取日期 |
| 界面英文(可在界面内切换) | 中文日期解析(dateparser 未指定语言) |
看图的关键区域是右上角的文档数量区,消费成功后数字在这里增长;左侧菜单的 Settings 稍后会用到。
⚙️ 核心开关:chi_sim 怎么写、语言包怎么自动装
改什么:PAPERLESS_OCR_LANGUAGE
environment: - PAPERLESS_OCR_LANGUAGE=chi_sim+engPAPERLESS_OCR_LANGUAGE:告诉 Tesseract 用什么语言读文档,三字母代码,chi_sim是简体中文、eng是英文,多语言用+连接
为什么这么填:Tesseract 按"语言包"工作,没装中文包就一个中文字都读不出来,镜像默认只装了eng。主语言放前面,Tesseract 匹配时优先偏重它;纯中文文档直接写chi_sim即可。
改完看到什么:往 consume 丢一份中文发票 PDF,几秒后入库,搜索框输入"发票"能命中。命不中就跳到文末故障表。
高频笔误:代码必须用下划线,写chi-sim直接报错,官方文档专门加了警示,见 docs/configuration.md。
改什么:PAPERLESS_OCR_LANGUAGES(Docker 部署才需要)
environment: - PAPERLESS_OCR_LANGUAGE=chi_sim+eng - PAPERLESS_OCR_LANGUAGES=chi_sim engPAPERLESS_OCR_LANGUAGE:同上一节PAPERLESS_OCR_LANGUAGES:容器启动时自动安装的语言包清单,空格分隔,不是+
为什么这么填:chi_sim 包镜像里没有,启动时 init-tesseract-langs 脚本会逐项检查缺失的包并用 apt 装上,不用手动进容器。
改完看到什么:启动日志出现Installed tesseract-ocr-chi_sim;重启后重新消费文档,中文文本可搜。
语言包装多少,看这个量级:
| 语言包数量 | 安装体积(约) | 识别速度 | 适合谁 |
|---|---|---|---|
| 1 种 | 10MB 内 | 快 | 单一语言环境 |
| 2~3 种 | 30MB 左右 | 中等 | 主语言加 1~2 个辅助语言 |
| 5 种以上 | 100MB 左右 | 慢 | 多语种归档中心 |
顺手项:中文日期与界面语言,各一行
environment: - PAPERLESS_DATE_PARSER_LANGUAGES=zh+enPAPERLESS_DATE_PARSER_LANGUAGES:日期解析库 dateparser 的语言,zh+en表示中英文
两套体系最容易混:这里两字母(zh/en),OCR 那边三字母(chi_sim/eng),千万别互相抄。不设它会从PAPERLESS_OCR_LANGUAGE推断(逻辑在 src/paperless/utils.py),但显式配置最稳,配好后"2026年8月30日"能被正确提成文档日期。
界面汉化是另一码事:Settings → General → Language 选简体中文,整站立刻切换,每个用户各选各的,互不影响。翻译文件随项目在 src/locale/,不用碰代码。
验收路径:丢文档 → 搜一下 → 点开看日期
一条端到端路线走通,别跳步。
第 1 步,丢文档。把中文发票 PDF 放进 consume 目录。 预期现象:几秒后文档出现在列表里。 不对去哪查:容器是否还在运行、日志有没有语言包缺失的报错。
第 2 步,搜一下。搜索框输入"发票"。 预期现象:命中文档出现,匹配词高亮,点预览能看原件。 不对去哪查:这份文档可能在改配置前就入库了,删掉重新消费,或以 redo 模式重跑 OCR。
看图重点在左侧结果列表和右侧预览窗:每一行是一个命中文档,预览窗直接显示命中片段。
第 3 步,点开看日期。打开文档编辑页,看日期字段。 预期现象:"Created"日期自动填上合同或发票上的日期,微调保存即可。 不对去哪查:日期字段为空或明显错误,先查PAPERLESS_DATE_PARSER_LANGUAGES是否生效。
上图左侧是元数据编辑区(标题、日期、标签),右侧是原件预览,改完保存即生效。
🔧 故障速查:四个高频现象各一招
| 现象 | 多半原因 | 一招修复 |
|---|---|---|
| 中文搜不到、文本乱码 | PAPERLESS_OCR_LANGUAGE还是默认eng,或写成了chi-sim | 改成下划线的chi_sim,重启容器并重新消费文档 |
| 容器起不来,日志报语言包安装失败 | PAPERLESS_OCR_LANGUAGES需 root 执行系统包安装,rootless 模式不支持 | 用 root 运行容器,或自构镜像预装tesseract-ocr-chi-sim |
| 日期字段为空或明显错误 | 日期解析看不懂中文表述 | 显式设PAPERLESS_DATE_PARSER_LANGUAGES=zh+en |
| 混合文档里英文部分大量丢失 | 语言顺序写反,少数派语言被压制 | 主语言放前:chi_sim+eng |
边界与人群
适合以中文文档为主、兼有英文材料的个人和团队:财务票据、合同、中英混合的研究资料都能覆盖,多用户各自选界面语言。两条硬边界:低分辨率扫描(低于 150~300 DPI)和手写体,OCR 效果有限,别指望奇迹;中文全文检索没有词干化处理,英文那种 running/run 互相命中的技巧在中文上不适用,这类需求靠标签和自定义字段兜底。
【免费下载链接】paperless-ngxA community-supported supercharged document management system: scan, index and archive all your documents项目地址: https://gitcode.com/GitHub_Trending/pa/paperless-ngx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考