ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何用消费目录把第一份文档导入 Paperless-ngx 并确认其完成 OCR 与归档

如何用消费目录把第一份文档导入 Paperless-ngx 并确认其完成 OCR 与归档 如何用消费目录把第一份文档导入 Paperless-ngx 并确认其完成 OCR 与归档【免费下载链接】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 后第一件要做的事是验证整条消费链路把一份文档放进消费目录consumption directory让 consumer 自动完成 OCR、建立索引并生成归档文件然后在 Web UI 和数据目录里确认结果。本文以 Docker Compose 部署为主线走一遍这条最短路径并给出文档中列出的验证方式和常见卡点。Paperless-ngx 由两个核心部分组成见 Basic Usageconsumer 负责监视指定目录并把新文件加入系统Web server 提供管理、搜索文档的界面。consumer 发现新文件后会依次做三件事如果文档没有内嵌文本先执行 OCR有文本的数字文档会跳过这一步生成可归档的 PDF/A 文档扫描来源的文档会嵌入可选中文字执行标签、发件人、文档类型的自动匹配然后存入数据库。准备条件一个能访问的 Paperless-ngx 实例按 安装文档消费目录方式的前提是 Paperless-ngx 已经在运行。Docker Compose 路线要求已安装 Docker 和 Docker Compose如果你是用官方安装脚本装的脚本会自动完成拉取镜像、启动容器和创建 superuser 账户可以直接跳到下一步。手动走 Compose 路线的话新安装建议使用 PostgreSQL 作为数据库后端从仓库的 docker/compose 目录下载一个docker-compose.*.yml文件例如 docker-compose.postgres.ymlOffice 文档支持选带-tika的版本保存为本地目录中的docker-compose.yml同时把docker-compose.env和.env放进同一目录。编辑docker-compose.env填入所需配置项完整选项见 配置文档。docker compose pull拉取镜像然后docker compose up -d创建并启动容器。首次访问http://127.0.0.1:8000或你改过的端口时界面会提示创建 superuser 账户。创建完成后浏览器就能登录接下来把注意力转回消费目录。确认消费目录挂载正确消费目录是整条链路的入口先确认挂载关系没有问题。在docker-compose.yml中找到挂载行格式为- ./consume:/usr/src/paperless/consume冒号前是宿主机目录后是容器内路径。要换本地目录时只改冒号前的部分例如- /home/jonaswinkler/paperless-inbox:/usr/src/paperless/consume这里有一个容易踩的坑配置文档 明确说明PAPERLESS_CONSUMPTION_DIR只改变容器内部路径Docker 部署下不要靠改它来换目录应该改docker-compose.yml里的挂载行。另外确认宿主机用户权限在docker-compose.env中按需设置USERMAP_UID和USERMAP_GID为宿主机用户的 UID/GID分别用id -u和id -g查询保证容器和宿主机用户都能读写消费目录。如果你的 UID/GID 就是1000很多系统第一个普通用户的默认值通常无需修改可用id username确认。改完后重启容器docker compose up -d放入第一份文档并观察消费过程把第一份文档扫描件、图片型 PDF 或带文本的 PDF 均可放进你在上一步配置的消费目录然后等待。consumer 会监视目录的新增文件文件稳定后开始处理——默认的稳定性延迟PAPERLESS_CONSUMER_STABILITY_DELAY为 5.0 秒即文件大小和修改时间保持不变 5 秒后才会开始消费所以刚拷贝完不要立刻下结论说没被拾取。新文件检测默认使用原生文件系统通知是即时的。只有当消费目录位于不支持 inotify 的文件系统例如 NFS 网络共享时才需要在docker-compose.env中把PAPERLESS_CONSUMER_POLLING_INTERVAL设为正数改用按秒轮询检测。消费完成后注意文档明确给出的行为被消费的文件会从消费目录中删除重新存入 Paperless-ngx 的媒体目录结构且原始文件永远不会被覆盖——归档版本与原始版本并列存放见 Basic Usage 中 The consumption directory 一节。所以消费目录应当被视为临时中转区不要在里面放需要长期保留的文件。验证 OCR 与归档是否完成消费成功与否可以从 Web UI 和数据目录两侧确认。Web UI 侧登录 Web UI打开文档列表第一份文档应当出现在列表中。打开文档详情页能看到文档内容即 OCR 出的文本也就是被送入搜索引擎的内容可以查看、编辑元数据、下载文件。用文档里的一段文字试一下搜索。Basic Usage 说明文档的 content 字段就是 OCR 出的文本并用于全文搜索能搜到说明文本层已经建立。归档与 OCR 行为侧默认配置下无需额外设置但行为值得知道见 配置文档 OCR 一节PAPERLESS_OCR_MODE默认autoPaperless 先检测文档是否已有内嵌文本足够多就跳过 OCR--skip-text没有文本才正常执行 OCR。你的第一份文档是扫描件这一步会真正跑 OCR。PAPERLESS_ARCHIVE_FILE_GENERATION默认auto扫描件和图片型 PDF 会生成 PDF/A 归档文件供 Web 界面显示已有内嵌文本的数字 PDF 则跳过归档生成。所以扫描件第一份文档消费后媒体目录中应同时有原始文件和归档文件。OCR 语言默认engPAPERLESS_OCR_LANGUAGE。如果你的文档是其他语言先在docker-compose.env里设置对应的三位代码如deu多语言可写成deueng并在 Docker 部署中同时设置PAPERLESS_OCR_LANGUAGES安装相应语言包再消费。数据目录侧登录消费目录对应的宿主机媒体目录compose 文件中media挂载点默认为容器内/usr/src/paperless/media确认原始文件已按存储路径结构落盘扫描件场景下还有对应的 PDF/A 归档文件。文档没有进入系统时的排查顺序故障排查文档 针对 No files are added by the consumer 给出了一组检查项按它走一遍即可定位问题确认你放文件的就是 Paperless 正在监视的目录。Docker 部署下这由docker-compose.yml的挂载决定非 Docker 部署才看PAPERLESS_CONSUMPTION_DIR。确认 brokerRedis/Valkey在运行。Paperless 的任务处理是异步的文档要到达任务处理器必须有 broker。确认任务处理器在运行。Docker 会自动处理裸机部署需手动执行celery --app paperless worker。查看 Paperless 的输出日志找错误。进入 admin 界面检查是否有失败任务——失败任务里带有错误信息这是最直接的判断依据。几种典型错误的对应处理均出自 故障排查文档现象原因与处理只在启动时拾取目录里已有的文件之后新增的文件不触发文件系统通知不可靠设置PAPERLESS_CONSUMER_POLLING_INTERVAL为正数改用轮询Permission denied: /usr/src/paperless/src/../consume/xxx.pdf容器用户无权删除/读写消费目录内文件把USERMAP_UID/USERMAP_GID设为宿主机实际使用的 UID/GID非 1000 时必查并确认宿主机上该目录可读写FileNotFoundError: /tmp/ocrmypdf.io.*/origin.pdfPaperless 试图消费同一个文件两次如扫描仪在写入过程中反复修改文件把PAPERLESS_CONSUMER_STABILITY_DELAY调大警告OCR for XX failed, but were going to stick with what weve got since FORGIVING_OCR is enabled缺少文档语言对应的 Tesseract 语言文件安装匹配的语言包如tesseract-ocr-spa如果第一份文档顺利出现在文档列表、内容可搜索、媒体目录里同时看到原始文件与归档文件说明消费、OCR、归档、索引整条链路都已打通后续就可以按 Basic Usage 继续用消费目录或 Web UI 拖拽上传、邮件消费批量导入了。【免费下载链接】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),仅供参考
返回列表