メインコンテンツへスキップ

PDF4meとn8nのParse Document機能を使って、PDFの中身に基づいて名前を変更する(コード不要!)

· 1分で読める
Software Developer

PDFファイル、請求書、契約書、発注書、報告書などを受け取った際に、後で簡単に検索できるよう、請求書番号、顧客名、注文ID、契約参照番号などでファイル名を変更したい場合、手作業で行うと何時間もかかってしまいます。

聞き覚えがありますか?あなただけではありません。手動でのファイル名変更は、拡張性に欠けます。

解決策: n8nワークフロー ダウンロード ファイルは、 PDF4meでドキュメントを解析する PDF 内から値を抽出するには、 マージ その値とファイル、そして アップロード 新しい名前で自動的に保存されます。内容は同じで、ファイル名だけが変わります。コードは一切不要です。

このガイドでは、次の 3 つの手順を説明します。PDF4me ダッシュボードで解析テンプレートを作成し、n8n でダウンロード → ドキュメントの解析を接続し、マージとアップロードを追加して、抽出した値をファイル名としてファイルが保存されるようにします。

フローの概要​

あなたのn8nワークフロー PDF4meによる動的なファイル名変更 見た目はこんな感じです。

  1. トリガーテストには手動トリガーを使用するか、新しいPDFが利用可能になったときにワークフローが実行されるように自動トリガー(Dropbox、メール、Webhookなど)を使用してください。
  2. ファイルをダウンロードするソース (Dropbox など) から PDF を取得し、バイナリ (例: document)
  3. ドキュメントを解析する (PDF4me):必要なフィールド(請求書番号、顧客名、注文番号)を抽出します parseInfo出力はJSON形式のみです。バイナリデータは前のノードに保持されます。
  4. マージ: 解析出力とダウンロード出力を1つの項目に結合し、ファイルの内容と新しいファイル名の両方を取得します。
  5. ファイルをアップロードする: 抽出した値に設定されたパス/ファイル名でファイルを保存します (例: Invoice #Pdf4me-202601-32324.pdf)

毎回同じファイルなのに、名前が変わる。以下では、各部分を詳しく解説します。

ステップ1:解析テンプレートを作成し、解析IDを取得する​

まず、定義します 何を抽出しますか? ファイル名について。PDF4me テンプレートを解析します API に、各ドキュメントからどのフィールドを取得するかを指定します。たとえば、請求書番号、顧客名、注文番号などです。テンプレートを使用します。 IDを解析 ステップ2のn8nにおいて。

両方に同じ PDF4me アカウントを使用してください。ダッシュボードにログインしてテンプレートを作成し、n8n で Parse document ノードを追加する際に、そのアカウントの API キーを使用してください。

  1. ログインまたはアカウントを作成してください で PDF4meダッシュボード。
  2. 行く ドキュメントを解析する (必要に応じて、戻りURL付きのログインリンクを使用することもできます。)
  3. テンプレートを作成する: 受け取る文書と一致するサンプルPDFをアップロードしてください。 キー 抽出したいフィールドごとに (例: invoiceNr、 customerName、 orderNumber)そして、各キーに対応するキャプチャ領域を文書上に描画します。
  4. クリック テスト解析 抽出された値を確認するには、 変更を保存。
  5. Parse IDをコピーする ダッシュボードから取得したデータを、次のステップでn8nに貼り付けます。

テンプレートの詳細な設定については、以下を参照してください。 ドキュメントの解析情報を準備する (キャプチャ領域、正規表現、複数キー)

PDF4me Parse Documentダッシュボード:テンプレート、Parse ID、キー、および解析結果


ステップ2:ファイルをダウンロードしてn8nで解析する​

次に、PDFをn8nに取り込んで 命名値を抽出します PDF4me を使用。ファイルは以下から取得できます。 ファイルをダウンロードする (例えば。 DropboxGoogle Drive、メール、または出力を行う任意のノード バイナリ。

これまでの流れ: トリガー → ファイルをダウンロード → ドキュメントを解析します。

重要: ドキュメントの解析結果 JSONのみ (parseInfo キーを使用して)バイナリファイルは渡されません。ファイルの内容はダウンロードノードに残ります。ステップ 3 では、両方をマージして、アップロードノードにファイルと新しい名前が渡されるようにします。

  1. トリガーを追加する手動トリガーはテストには適していますが、本番環境では、新しいPDFが利用可能になったときにワークフローが実行されるように、自動トリガー(Dropbox、メール、Googleドライブ、Webhookなど)を使用してください。
  2. ファイルを提供するノードを追加する例: ファイルをダウンロードする (Dropbox) 出力ファイルをフィールドに配置してください: document。
  3. PDF4meノードを追加する → 選択 抽出する → ドキュメントを解析する。
  4. Parseドキュメントノードを設定します。
  • 入力データタイプ: バイナリデータ。
  • 入力バイナリフィールド: document (または、ダウンロードノードが使用する任意のフィールド)。
  • 文書名例: document.pdf。
  • IDを解析ステップ1の解析IDを貼り付けてください。
  • 出力形式例:JSON。
  1. ノードを実行します。 出力 含まれるもの parseInfo 鍵を使って(例: parseInfo['Invoice No'])

パラメータの完全なリファレンス: ドキュメントの解析 (n8n)。

n8nワークフロー:ファイルをダウンロードしてドキュメントを解析する

ドキュメントノードの解析: parseInfo を使用したバイナリ入力と出力


ステップ3:新しい名前でマージしてアップロードする​

保存するために 同じファイル と共に 新しい名前次のノードには、 ファイルの内容 (ダウンロードから)そして ファイル名 (パースより) マージ ノードはそれらを1つのアイテムに結合します。次に、 アップロード nodeは、抽出した値をパスまたはファイル名として使用してファイルを書き込みます。

  1. マージノードを追加する
  • モード: 組み合わせる。
  • 組み合わせる方法: 位置(入力1の最初の項目と入力2の最初の項目をペアにする)。
  • 入力1: 接続先 ドキュメントを解析する (提供する) parseInfo)
  • 入力2: 接続先 ファイルをダウンロードする (提供する) binary.document)
  • 出力: 両方を含む1つの統合アイテム json.parseInfo そして binary.document。

ノードの結合: 位置による結合、入力 1 = ドキュメントの解析、入力 2 = ファイルのダウンロード

  1. アップロードノードを追加する (例:Dropbox) ファイルをアップロードする(またはバイナリ+パスを受け入れる任意のノード)
  • ファイルパス (表現):例 /Blog Data/{{ $json.parseInfo['Invoice No'] }}.pdf 解析テンプレートキーにスペースが含まれていない場合は、 $json.parseInfo.invoiceNrスペースを含むキーは括弧表記を使用します。 $json.parseInfo['Invoice No']。
  • バイナリファイル: の上。
  • 入力バイナリフィールド: document。
  • 結果:ファイルは新しい名前でアップロードされ、内容はダウンロードしたファイルと同じです。

ファイルのアップロード:ファイルパス式とバイナリフィールド

同じパターンは、Googleドライブ、メール、またはバイナリデータと動的なパスを受け入れるあらゆるノードにも適用できます。 ヒント: Dropboxを使用してダウンロードとアップロードを行いますか? 読む そして 書く 権限 Dropboxアプリコンソール (権限 → ファイルとフォルダ):例:ダウンロードの読み取り、 files.content.write アップロードには、有効化後に新しいアクセストークンを使用してください。

Gotcha: Uploadノードがバイナリが見つからないと表示している場合は、Mergeの入力2が接続されていることを再確認してください。 ファイルをダウンロードする (Parseからの情報ではありません。)

ワークフロー全体:トリガー → ダウンロード → 解析 → マージ → アップロード


これが効果的な理由​

要点

  • トリガーテストには手動トリガーを使用するか、ワークフローに合わせて自動トリガー(Dropbox、メール、Webhookなど)を使用して、新しいPDFが利用可能になったときにワークフローが実行されるようにしてください。
  • ドキュメントを解析する 必要なフィールド(請求書番号、顧客名、注文番号)を抽出します $json.parseInfoバイナリファイルではなく、JSONファイルのみが出力されます。
  • マージ (位置による結合) は Parse 出力と Download 出力を結合し、次のノードが両方のファイルコンテンツを含む 1 つのアイテムを受け取ります (バイナリ.ドキュメント)と抽出されたファイル名(parseInfo)
  • アップロード (または保存)使用 $json.parseInfo['請求書番号'] (またはキー)パス/ファイル名と バイナリ.ドキュメント コンテンツに合わせて、各ファイルは動的に名前が変更されます。

現実世界のシナリオ​

シナリオ1:仕入先請求書の処理

問題: ベンダーは、Dropbox、メール、または請求書作成ツールから、週に数十件のPDF請求書を受け取ります。ファイルは次のように届きます。 document.pdf または invoice (1).pdf見つけにくく、支払いと照合しにくい。

解決: このワークフローを使用して、請求書番号で各ファイルの名前を変更します(例: INV-202601-32324.pdf各ファイルは検索可能で追跡可能です。

抽出フィールド: 請求書番号(または請求書ID) トリガー: Dropboxフォルダ、メール添付ファイル、またはWebhook

シナリオ2:発注書書類

問題: 調達チームは、サプライヤーまたは社内システムから発注書(PO)のPDFファイルを受け取ります。しかし、ファイル名が汎用的なため、ERPシステムで文書と注文を関連付けるのが困難です。

解決: 各 PO PDF の名前を注文番号で変更します (例: PO-98765.pdf)

抽出フィールド: 発注番号 トリガー: Dropbox、メール、Webhook

シナリオ3:顧客契約

問題: 法務チームや営業チームは、さまざまな情報源から署名済みの契約書を受け取ります。顧客名や契約IDで特定の契約書を探すには、ファイルを一つずつ開いていく必要があります。

解決: 顧客名または契約 ID で名前を変更します (例: Acme-Corp-202601.pdf)

抽出フィールド: 顧客名または契約ID トリガー: メール、共有フォルダ、ウェブフック

シナリオ4:注文確認書と配送書類

問題: 運用チームは注文確認書または配送ラベルを受け取ります。追跡および監査のために文書と注文を照合するには、検索可能なファイル名が必要です。

解決: 注文番号または追跡 ID で名前を変更します (例: ORD-12345.pdf または TRK-ABC123.pdf)

抽出フィールド: 注文番号または追跡番号 トリガー: メール、Dropbox、API/Webhook


よくある質問​

  • 複数のキー(例:請求書番号と顧客名)がある場合はどうすればよいですか? パス内でそれらを使用します。例: /Folder/{{ $json.parseInfo.customerName }}-{{ $json.parseInfo.invoiceNr }}.pdf。
  • これをGoogleドライブやメールで使用できますか? はい。同じ手順です。ファイルをバイナリ形式で出力するノードと、バイナリ形式と動的なパスを受け入れるアップロード(または保存)ノードを使用します。

次のステップ​

まとめ: トリガー → ファイルをダウンロード → ドキュメントを解析(PDF4me) → 結合 → アップロード。解析テンプレート(ステップ1)でフィールドを定義し、結合でファイルと名前を結合し、アップロードで新しい名前で保存します。

  1. APIキーを取得してくださいダッシュボードとn8nには同じPDF4meアカウントを使用してください。無料で始められます。
  2. 解析テンプレートを作成するファイル名に含めるフィールド(請求書番号、顧客名など)を定義します。 ドキュメントを解析する ダッシュボード。
  3. n8nフローを構築しよう: トリガー → ファイルをダウンロード → ドキュメントを解析 → マージ → 動的なファイル名でアップロード(または保存)。
  4. ドキュメント全文をお読みください: ドキュメントの解析 (n8n)、 解析情報の準備。