跳到主要内容

使用 n8n,只需 4 个步骤即可将条形码或二维码文本转换为 PDF 文件名!

· 阅读需 11 分钟
SEO and Content Writer

您会收到PDF文件、发货标签、库存清单和发票,每份文件上都有一个条形码或二维码,其中包含您需要的追踪号码、序列号或产品代码。您希望根据这些值重命名文件,以便日后查找。手动操作?这会耗费您数小时。

听起来是不是很熟悉?你并不孤单。手动重命名无法有效扩展。

解决方案:一个 n8n 工作流程 下载 PDF 使用 从 PDF 读取条形码 使用 PDF4me 从条形码或二维码中提取值, 合并 该值与文件关联,并且 上传 使用新名称。内容相同,文件名不同,无需手动重命名。

本指南将引导您完成整个流程:下载 PDF,读取其条形码值,然后合并文件并以条形码作为新文件名上传文件。

流程概览

您的 n8n 工作流程 按条形码值重命名 PDF 看起来像这样:

  1. 扳机:手动测试,或在新 PDF 可用时自动执行(例如 Dropbox、电子邮件、webhook)。
  2. 下载文件从源文件(例如 Dropbox)获取 PDF 文件,并将其以二进制形式输出到诸如 `<field>` 之类的字段中。 document
  3. 从 PDF 读取条形码 (PDF4me):从 PDF 中读取条形码/二维码并输出结构化数据(例如,文本、数字、文本和文本格式)。 barcodeData.barcodes 与一个 value 每个条形码对应一个文件)。原始 PDF 文件保留在下载节点上。
  4. 合并:将读取条形码输出(条形码数据)和下载输出(PDF 二进制文件)合并为一个项目,以便下一个节点同时具有新文件名和文件内容。
  5. 上传文件:将 PDF 保存为条形码值(例如,路径/文件名)。 PDF4me Barcode Sample.pdf 或者 TRK-ABC123.pdf)。

每次都是同一个文件,只是文件名不同。下面我们将详细介绍每个部分。

n8n 工作流程概述:触发 → 下载文件 → 从 PDF 读取条形码 → 合并 → 上传文件

第一步:下载文件并读取其条形码

接下来,将PDF文件导入n8n。 提取命名值 使用 PDF4me 读取条形码。文件可以来自 下载文件 (例如。 Dropbox)、Google 云端硬盘、电子邮件或任何输出节点 二进制

目前为止的流程: 触发器 → 下载文件 → 从 PDF 读取条形码。

重要的: 读取条形码函数返回条形码数据(例如,在……中)。 barcodeData.barcodes 与一个 value 对于每个条形码):它不会经过 PDF 文件。文件内容保留在下载节点上。在步骤 2 中,您将合并两者,以便上传节点包含文件及其新名称。

  1. 添加触发器:测试时使用手动方式;生产环境使用自动触发器(例如 Dropbox、电子邮件、Google Drive、webhook)。
  2. 添加下载文件 (例如 Dropbox):设置 文件路径 保存到您的 PDF 位置(例如: /Blog Data/barcode.pdf) 和 将输出文件放入字段document 因此,PDF 将以二进制形式提供给后续节点。
  3. 添加一个 PDF4me 节点条形码从 PDF 读取条形码
  4. 配置读取条形码节点:
  • 输入数据类型: 二进制数据。
  • 输入二进制字段: document (与下载节点的输出字段相同)。
  • 输出文件名: 例如 read_barcode_from_pdf.json
  • 条形码类型: All (或特定类型,如二维码、Code 128)。
  • 页数: all (例如: 0 (仅限首页)。
  • 异步: 如果需要,可开启此功能以打开更大的 PDF 文件。
  • 二进制数据输出名称: data
  1. 运行节点。输出结果包括 条形码数据 与一个 条形码 数组;每个条形码都有 价值 (解码后的文本) 条形码类型以及位置。您将使用 barcodeData.barcodes[0].value 用于上传步骤中的文件名。

完整参数参考: 从 PDF 读取条形码 (n8n)

n8n Dropbox 下载文件节点:文件路径并将输出放入字段文档中
n8n 从 PDF 读取条形码节点:参数和条形码数据输出

步骤 2:合并并以新名称上传

你需要这两个 PDF二进制文件 (来自下载)和 条形码数据 (来自“从 PDF 读取条形码”)合并到一个项目中,以便上传节点可以以新名称保存文件。 合并 节点将它们组合在一起; 上传 然后节点使用条形码值作为路径或文件名。

  1. 添加合并节点
  • 模式: 结合。
  • 合并方式: 位置(输入 1 中的第一个项目与输入 2 中的第一个项目)。
  • 输入数量: 2.
  • 输入 1: 连接 从 PDF 读取条形码 (提供条形码数据;合并后的项目将包含 JSON 数据) barcodeData)。
  • 输入 2: 连接 下载文件 (提供) binary.document)。
  • 输出: 一个合并项,同时包含条形码 JSON 和 binary.document因此,下一个节点包含新的文件名和文件内容。
n8n 合并节点:合并条形码 JSON 和 PDF 二进制文件
  1. 添加上传节点 (例如 Dropbox) 上传文件(或任何接受二进制数据 + 路径的节点)
  • 文件路径 (表达方式):例如 /Blog Data/{{ $json.barcodeData.barcodes[0].value }}.pdf PDF4me 的“读取条形码”节点会输出解码后的条形码文本。 价值 (例如。 "PDF4me Barcode Sample"您还可以通过名称引用节点: $('Read barcode from PDF').item.json.barcodeData.barcodes[0].value
  • 用于第二个或第三个条形码 barcodes[1].value 或者 barcodes[2].value。 添加 || 'no-barcode-found' 如果您希望在未检测到条形码时使用备用方案。
  • 二进制文件: 在。
  • 输入二进制字段: document
  • 文件以条形码值作为文件名上传;PDF 内容保持不变。
n8n 上传文件:根据条形码值动态命名文件名

同样的合并+上传模式也适用于 Google 云端硬盘、电子邮件或任何接受二进制文件和动态路径的存储方式。 提示: 对于 Dropbox,请启用 Dropbox 应用控制台 (权限 → 文件和文件夹):例如,读取下载权限 files.content.write 对于上传操作,更改权限后请使用新的访问令牌。

问题: 如果上传报告缺少二进制文件,请确保合并 输入 2 是来自 下载文件不是来自 Read Barcode。


为什么这种方法有效

要点

  • 扳机使用手动触发器进行测试,或者使用自动触发器(Dropbox、电子邮件、webhook)使工作流程在新 PDF 可用时运行,无论哪种方式都适合您的工作流程。
  • 从 PDF 读取条形码 从 PDF 中提取条形码/二维码数据并输出 barcodeData.barcodes 与一个 价值 每个条形码(解码后的文本)都会被处理。它不会经过 PDF 文件;文件会保留在下载节点上。
  • 合并 (按位置合并)将读取条形码输出(条形码数据)与下载输出(二进制文件)配对,以便下一个节点接收到包含两者的单个项目。 二进制文档条形码数据
  • 上传 (或保存)用途 $json.barcodeData.barcodes[0].value 路径/文件名 二进制文档 对于内容,每个文件都会根据其条形码值进行重命名。

真实世界场景

场景一:货运标签和追踪号码

问题: 运营团队收到货运标签 PDF 文件。文件到达时为: label_001.pdflabel_002.pdf很难通过追踪号码找到特定的包裹。

解决方案: 使用此工作流程按跟踪条形码重命名每个文件(例如: 1Z999AA10123456784.pdf 或者 TRK-ABC123.pdf每个文件都可以通过跟踪 ID 进行搜索。

提取字段: 追踪号码(来自条形码) 扳机: Dropbox 文件夹、电子邮件附件或 Webhook

场景二:库存和序列号

问题: 设备或资产 PDF 文件,名称通用;每个文件都有一个序列号条形码。

解决方案: 通过序列号条形码重命名(例如 SN-2024-88765.pdf)将文档与系统中的资产进行匹配。

提取字段: 序列号(来自条形码) 扳机: Dropbox、电子邮件、Webhook

场景 3:带有二维码或条形码标识符的发票

问题: 供应商发票包含带有发票编号的二维码或条形码。

解决方案: 按该 ID 重命名(例如: INV-QR-202601-12345.pdf无需手动查找。

提取字段: 发票编号(来自条形码/二维码) 扳机: 电子邮件、共享文件夹、Webhook

场景 4:产品目录和 SKU

问题: 带有产品代码条形码的PDF产品资料单。

解决方案: 按 SKU 重命名(例如: SKU-ABC-789.pdf直接映射到您的目录。

提取字段: 产品代码/SKU(来自条形码) 扳机: Dropbox、电子邮件、API/webhook


快速常见问题解答

  • 如果找不到条形码怎么办? 在文件路径表达式中使用备用方案: {{ $json.barcodeData.barcodes[0].value || 'no-barcode-found' }}您可以添加条件分支来跳过上传步骤,或者将这些文件发送到单独的文件夹。
  • 如果我有多条形码怎么办? 在文件路径表达式中使用索引: barcodes[1].value 对于第二个,或者连接起来: {{ $json.barcodeData.barcodes[0].value }}-{{ $json.barcodeData.barcodes[1].value }}
  • 我可以将它用于 Google 云端硬盘或电子邮件吗? 是的。模式相同:使用任何能以二进制格式返回文件的节点,以及任何接受二进制文件和动态路径的上传(或保存)节点。

后续步骤

概要: 触发 → 下载文件 → 从 PDF 读取条形码 → 合并 → 上传。条形码值(来自 barcodeData.barcodes[0].value)成为文件名。每个PDF文件都以解码后的条形码或二维码内容作为文件名保存。

  1. 获取您的 API 密钥使用同一个 PDF4me 账号注册 n8n。免费注册。
  2. 构建你的 n8n 流程:触发器 → 下载文件 → 从 PDF 读取条形码 → 合并 → 上传,文件路径设置为条形码值。
  3. 阅读完整文档从 PDF 读取条形码 (n8n)