Paperless-ngx 如何用分隔条形码把一次扫描自动拆分为多份文档
Paperless-ngx 如何用分隔条形码把一次扫描自动拆分为多份文档【免费下载链接】paperless-ngxA community-supported supercharged document management system: scan, index and archive all your documents项目地址: https://gitcode.com/GitHub_Trending/pa/paperless-ngx一次扫描塞进多份不同文档扫描出来的却是一个包含全部页面的 PDF——这是把一堆文件批量过 ADF 时最典型的尴尬。Paperless-ngx 的条形码分页功能barcode document splitting就是为此设计的在文档之间插入一张带分隔条形码的分隔页如标准的 PATCH-T 页扫描上传后Paperless 会自动按条形码位置把这一个文件拆成多份独立文档分别入库。该功能对 PDF 文件原生支持TIFF 需要额外开启转换选项见下文。只要上传的文件里没检测到条形码Paperless 就不会做任何分页文件按单份文档正常处理。工作原理与拆分规则Paperless 使用的检测库支持以下条形码类型EAN-13/UPC-A、UPC-E、EAN-8Code 128、Code 93、Code 39、CodabarInterleaved 2 of 5QR Code、Data Matrix、Aztec、PDF417对 Paperless 而言条形码的类型不重要只有内容重要。默认的拆分行为见 docs/advanced_usage.md 的 Document Splitting 一节启用拆分后Paperless 在分隔条形码之后拆分任何含有配置的分隔条形码的页面从下一页开始一份新文档含有分隔条形码的页面本身会被丢弃这是为专用分隔页如 PATCH-T 页设计的整张纸只有条形码丢弃它不影响内容。如果希望保留分隔页本身把PAPERLESS_CONSUMER_BARCODE_RETAIN_SPLIT_PAGES设为true此时每个含分隔条形码的页面会变成新文档的第一页而不是被丢弃。两个补充规则若同时启用了 ASN 条形码PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE检测到 ASN 条形码处也会拆分但 ASN 所在页会被保留新文档从该页开始——这允许把 ASN 条形码直接印在正文页上。若与双面拼页double-sided collate功能一起使用普通单面分隔页会让拆分后的文档多出一页空白分隔页的背面。解决办法是使用正反两面都印有分隔条形码的分隔页这样多余的页会被自动去掉。启用条形码拆分配置入口按运行方式不同而不同见 docs/configuration.md 开头Docker 部署不使用paperless.conf把变量写进docker-compose.env参考 docker/compose/docker-compose.env其他部署方式写入paperless.conf查找顺序为环境变量PAPERLESS_CONFIGURATION_PATH指向的路径、/path/to/paperless/paperless.conf、/etc/paperless.conf、/usr/local/etc/paperless.conf。最短主路径只需一条必需配置PAPERLESS_CONSUMER_ENABLE_BARCODEStrue该选项默认false。启用后上传文件中检测到的分隔条形码会触发分页原始文件被移除拆分出的页面各自保存为 PDF 并分别消费。按场景增配以下选项均为可选默认值见 docs/configuration.md# 分隔条形码内容用标准 PATCH-T 分隔页时保持默认即可 PAPERLESS_CONSUMER_BARCODE_STRINGPATCHT # 扫描结果是 TIFF 时才需要把 TIFF 先转成 PDF 再检测条形码 PAPERLESS_CONSUMER_BARCODE_TIFF_SUPPORTtrue # 保留分隔页本身成为新文档第一页默认丢弃 PAPERLESS_CONSUMER_BARCODE_RETAIN_SPLIT_PAGEStruePAPERLESS_CONSUMER_BARCODE_STRING默认为PATCHT。文档明确建议如果你用的是 PATCH-T 标准分隔页不要改这个值。检测失败时的调参项条形码检测对扫描件质量有一定要求configuration 文档给出了三个对应的调节点PAPERLESS_CONSUMER_BARCODE_DPI检测时每页会被转成图像默认300。文档原文如果小条形码检测失败可以调大例如600并配合下面的 upscale 一起用。PAPERLESS_CONSUMER_BARCODE_UPSCALE放大倍数默认0.0即不放大值大于1.0时会在检测前按该比例放大页面文档给出的示例值是1.5用于改善小条形码的检出。PAPERLESS_CONSUMER_BARCODE_MAX_PAGES条形码检测是计算密集型操作此选项把检测限制在前 N 页默认0表示检查所有页面。如果你的扫描仪有单次扫描页数上限把它设为同样的上限是合理的。PAPERLESS_CONSUMER_BARCODE_DPI600 PAPERLESS_CONSUMER_BARCODE_UPSCALE1.5 PAPERLESS_CONSUMER_BARCODE_MAX_PAGES50可选分支用标签条形码同时拆分和打标除了纯分隔页还可以用标签条形码tag barcode一石二鸟在文档之间放一个带TAG:xxx条形码的页面Paperless 既在条形码处拆分又把标签赋给拆分出的文档。需要同时启用两个选项PAPERLESS_CONSUMER_ENABLE_TAG_BARCODEtrue PAPERLESS_CONSUMER_TAG_BARCODE_SPLITtrue映射规则由PAPERLESS_CONSUMER_TAG_BARCODE_MAPPING定义语法为{regex: substitute}默认值{TAG:(.*): \\g1}即TAG:前缀后的文本作为标签名标签不存在时会自动创建。映射示例文档原文{T-J: JOHN, T-S: SMITH, T-D: DOE}会把T-J条形码直接映射到标签JOHN以此类推。开启拆分后的行为docs/advanced_usage.md Splitting on Tag Barcodes 一节含标签条形码的页面保留在拆分结果中与 PATCH-T 分隔页默认被丢弃不同每份拆分文档只提取自己页面上的标签同一个文件里多个标签条形码可以触发多次拆分。文档给出的示例一个 6 页扫描第 3 页是TAG:invoice、第 5 页是TAG:receipt结果是三份文档——第 1–2 页无标签、第 3–4 页标签invoice、第 5–6 页标签receipt。验证拆分是否生效判断方法直接来自文档与实现上传后在文档列表中看结果拆分成功时原始合并文件会被移除每份拆分结果以独立 PDF 文档出现对应N个分隔条形码页面通常得到N1份文档。消费者日志中出现拆分完成信息。在 src/documents/barcodes.py 中拆分完成后会记录Barcode splitting complete!每份拆出文件创建新任务时记录Created new task ... for 文件名拆分产物的内部文件名形如原名_document_0.pdf、原名_document_1.pdf见 src/documents/barcodes.py。反向确认如果上传文件里没有检测到任何条形码文档明确说明不会发生分页——你得到的是原来那一份完整文档。这是区分功能没生效和没扫到条形码的第一步。常见不生效的原因与边界TIFF 扫描没被拆分条形码检测默认只处理 PDF。TIFF 必须先开PAPERLESS_CONSUMER_BARCODE_TIFF_SUPPORTtrue它会把 TIFF 自动转成 PDF 再检测不开启时 TIFF 文件上的条形码不会被读取。小条形码漏检优先按上节把PAPERLESS_CONSUMER_BARCODE_DPI调大如 600并配合PAPERLESS_CONSUMER_BARCODE_UPSCALE如 1.5大于 1.0 的值。分隔页被丢弃了这是默认行为而非故障——分隔页内容不进任何文档。若分隔页上还印有正文改设PAPERLESS_CONSUMER_BARCODE_RETAIN_SPLIT_PAGEStrue。条形码重复使用导致冲突若同时启用 ASN 功能且检测到与已存在 ASN 相同的条形码文档说明该文档不会被消费并会记录错误——分隔条形码本身不受此影响但 ASN 条形码是唯一的不能复用。下一步如果拆分只是第一步文档里与条形码相关的两个延伸能力可以按需组合用PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE在拆分时给每份文档写入档案流水号ASN或用标签条形码映射把分类一步完成。完整参数说明见 docs/configuration.md 的 Barcodes 章节行为细节见 docs/advanced_usage.md。【免费下载链接】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),仅供参考