Makeでフォルダ内の複数のPDFを結合する:イテレータ、配列アグリゲーター、PDF4meを使った手順

Dropboxフォルダに複数のPDFファイルがあり、それらを自動的に1つのPDFファイルに結合したいとします。ただし、注意点があります。 PDF4meで複数のPDFを結合する 期待する 配列 ファイルデータですが、Dropbox ウォッチファイル ファイルメタデータのリストを返し、 ファイルをダウンロードする 一度に1つのファイルを返します。そのギャップを埋めるには、 イテレータ そして 配列アグリゲーターイテレータは各ファイルを1つずつ処理し、配列アグリゲーターはそれらの結果をマージが期待する配列に収集します。
このガイドでは、Make シナリオ全体を詳しく解説し、特に以下の点に焦点を当てます。 イテレータと配列アグリゲーターの仕組み そして、それらをPDF4me Makeコネクタに接続する方法。
必要なもの
- A 作る アカウント、 無料のMakeアカウントを作成する もしお持ちでない場合は。
- PDF4meとの連携: 追加 PDF4me on Make そしてあなたの APIキー。 見る PDF4me を接続して作成する 必要に応じて。
- Dropbox: Dropbox を Make に接続します。ソースフォルダ (例:
/pdf4metest/Merge/mergetest/)と出力フォルダー(例:/pdf4meoutput/)
フローの概要
シナリオは 6つのモジュール この順序で:
- Dropbox: ファイルの監視: フォルダー内の新規ファイルまたは更新されたファイルを監視します。 配列 ファイルメタデータ(パス、名前、サイズ)について。
- Dropbox: ファイルをダウンロードする各ファイルをダウンロードします。 イテレータルート内ファイルごとに1回。
- イテレータ: ウォッチファイルから配列を取得し、処理します 各アイテムを1つずつ. 実行後、ファイルごとに一度だけ接続されます。
- 配列アグリゲーター各イテレータサイクルからの出力(ダウンロードされたファイルデータ)を収集し、それをバンドルします。 単一アレイ PDF4me Merge用にフォーマットされています。
- PDF4me:複数のPDFを結合する集約された配列を受け取り、すべてのPDFを1つに結合し、結合されたファイルを出力します。
- Dropbox: ファイルのアップロード結合されたPDFファイルを、指定した出力フォルダに保存します。

イテレータと配列アグリゲーターの理解
設定する前に、理解しておくと役立ちます なぜ これら2つのモジュールが必要です。
なぜイテレータを使うのか?
Dropbox、ファイルの監視 を返す 配列 ファイルオブジェクト(それぞれにパス、名前、サイズなどが含まれる)。 PDF4me、複数のPDFを結合する 必要とする ファイルコンテンツの配列 (バイナリデータ)であってメタデータではありません。コンテンツを取得するには、 各ファイルをダウンロード。 しかし ファイルをダウンロードする 作業中 実行ごとに1つのファイル: 単一のパスが必要です。
の イテレータ これを解決するには、Watch Files から配列を取得し、 それを個々のアイテムに分割します各アイテムに対して、そのルート内のモジュールを実行します。 一度。 それで:
- Watch Filesの出力:
[file1, file2, file3] - イテレータはルートを実行します 3回ファイル1用に1回、ファイル2用に1回、ファイル3用に1回
- ファイルのダウンロードが実行されます 3回毎回、イテレータから現在のファイルのパスを使用します。
なぜ配列アグリゲーターが必要なのか?
イテレータの実行後、 複数の独立した実行 ファイルをダウンロードすると、ファイルごとに 1 つの出力が生成されます。PDF4me Merge は、 1つの配列 すべてのファイルデータが含まれています。 配列アグリゲーター イテレータの逆の動作をします。 収集する 各イテレータサイクルの出力と 組み合わせる それを単一の配列にまとめ、マージモジュールが使用できるような構造にする。
- イテレータは以下を生成します:サイクル1 → file1データ、サイクル2 → file2データ、サイクル3 → file3データ
- 配列アグリゲーターは以下を収集します。
[file1 data, file2 data, file3 data] - Merge はその配列を受け取り、結合された 1 つの PDF を生成します。
ステップ1:Dropbox:ファイルの監視(トリガー)
このモジュールはフォルダを監視し、ファイルメタデータの配列を出力します。新規ファイルまたは更新されたファイルが現れると、シナリオがトリガーされます。
これまでの流れ: ファイルを見る。
- 追加 Dropbox → ウォッチファイル (または ファイル一覧 (投票をご希望の場合)
- 繋がり *Dropboxへの接続を選択してください。
- フォルダ検索方法: 選ぶ リストから選択 (またはご希望の方法)
- フォルダパス: 結合する PDF を含むフォルダーを入力します (例:
/pdf4metest/Merge/mergetest/) - サブフォルダもご覧ください: セット いいえ そのフォルダ内のファイルだけが必要な場合。 はい サブフォルダを含める。
- 制限*: 実行ごとに最大ファイル数を設定します (例: 10このモジュールは最大4,000個のアイテムを処理できます。

出力: ファイルオブジェクトの配列。各項目には パス表示、 ファイル名、 ファイルサイズ、および同様のフィールド。イテレータは次にこの配列を使用します。
ステップ2:Dropbox:ファイルのダウンロード(イテレータルート内)
このモジュールを追加する 後 イテレータ(イテレータルート内に配置されます)。現在のアイテムのパスを使用して、イテレータのサイクルごとに1つのファイルをダウンロードします。
これまでの流れ: ファイルを監視する → イテレータ → ファイルをダウンロードする。
- 追加 Dropbox → ファイルをダウンロードする そしてそれをイテレータに接続します。
- 繋がり *Dropboxへの接続を選択してください。
- ファイルを選択する方法 *: 選ぶ ファイルパスをマッピングする つまり、イテレータからパスを取得できるということです。
- ファイルパス *: 地図 2. 経路表示 (または「監視ファイル」のパスフィールド)。これにより、各イテレーションで正しいファイルがダウンロードされることが保証されます。

サイクルあたりの出力: データ (ファイルの内容) ファイル名、 ファイルサイズ配列アグリゲーターはこれを収集します データ 各サイクルごとに。
ステップ3:イテレータ(フロー制御)
イテレータは、ウォッチファイルから配列を取得し、各項目ごとにその下のルートを一度実行します。
これまでの流れ: ファイル監視 → イテレータ → [ファイルのダウンロードはアイテムごとに実行されます]。
- 追加 流量制御 → イテレータ そしてそれを「ファイルの監視」に接続します。
- 配列: 有効にする 地図 そして、ウォッチファイルから配列を選択します。次のようなフィールドをマッピングできます。 5. ファイル名 そして 5. ファイルサイズ (またはWatch Filesモジュールからの同等の)情報を提供することで、イテレータは反復処理の対象を認識できます。イテレータは、現在のアイテムのフィールド(パスの表示、ファイル名など)を、そのルート内のモジュールに公開します。

行動: Watch Filesが5つのファイルを返した場合、イテレータはルートを5回実行します。各実行において、Download a Fileは当該サイクルのファイルのパスを受け取り、ファイルをダウンロードします。
ステップ4:アレイアグリゲーター(フロー制御)
配列アグリゲーターは、各イテレータサイクルの出力を収集し、マージモジュール用の単一の配列を構築します。
これまでの流れ: ファイル監視 → イテレータ → ファイルのダウンロード → 配列アグリゲーター。
- 追加 流量制御 → 配列アグリゲーター そして、イテレータルートの後にそれを接続します(すべてのサイクルにわたって集約されます)。
- ソースモジュール *:選択 Dropbox - ウォッチファイル [2] (または、Watch Files モジュール)。これは、アグリゲーターがどのシナリオ実行に属するかを定義します。
- 標的構造:選択 PDF4me - 複数のPDFを結合 [4...] (または、マージモジュール)。これにより、マージモジュールがデータを利用できるように、集約されたデータが構造化されます。
- ファイル → ファイル:選択 Dropbox - ファイルをダウンロードする アグリゲーターは、 ファイルの内容(データ) メタデータだけでなく、各ダウンロードから取得する。

出力: 単一の配列 (例: 3. 配列[])ダウンロードしたすべてのPDFデータを含み、PDF4me Mergeが想定する形式になっています。
ステップ5:PDF4me:複数のPDFを結合する
このモジュールは集約された配列を受け取り、すべてのPDFを1つに結合します。
これまでの流れ: … → 配列アグリゲーター → 複数の PDF を結合します。
- 追加 PDF4me → 複数のPDFを結合する (マージと分割の下)でそれを配列アグリゲーターに接続します。
- 繋がり *PDF4meへの接続を選択してください。
- ファイル: 有効にする 地図 そして選択する 3. 配列[] (配列アグリゲーターからの出力)。これにより、収集されたファイルデータがマージ処理に渡されます。
- 出力ファイル名: 結合された PDF の名前を入力します (例:
merged_document.pdf) - 保護されたPDFをスキップする: 選ぶ はい パスワードで保護された PDF をスキップするには、 いいえ それらを取り入れてみる。
![PDF4me 複数の PDF を結合: ファイルは 3 にマッピングされます。Array[]、出力ファイル名、保護された PDF をスキップします](/assets/images/blog/merge-files-make/merge-files-make-5-merge-pdfs.png)
出力: 名前 そして 文書日付 (結合されたPDFバッファ)。 文書日付 アップロードモジュールへ。
ステップ6:Dropbox:ファイルをアップロードする
結合されたPDFファイルを出力フォルダに保存してください。
これまでの流れ: … → 複数の PDF を結合 → ファイルをアップロードします。
- 追加 Dropbox → ファイルをアップロードする そして、それをマージモジュールに接続します。
- 繋がり *Dropboxへの接続を選択してください。
- フォルダ *: 宛先パスを入力します (例:
/pdf4meoutput) - ファイル *:選択 PDF4me - 複数のPDFを結合する つまり、ファイルの内容はマージ出力から取得されるということです。

概要:このフローにおけるイテレータとアグリゲーター
| モジュール | 役割 |
|---|---|
| イテレータ | ウォッチファイル配列を個々の項目に分割します。ファイルごとに「ファイルのダウンロード」を1回実行します。 |
| 配列アグリゲーター | 各「ファイルをダウンロード」の出力を収集し、マージのために1つの配列にまとめます。 |
| 結果 | マージが受信する [file1_data, file2_data, …] そして、1つの結合されたPDFファイルを生成します。 |
イテレータがなければ、各ファイルを個別にダウンロードすることはできません。配列アグリゲーターがなければ、マージは必要な結合配列を受け取ることができません。これら2つが連携することで、PDF4meにとって「多数のファイルメタデータ項目」が「1つのファイルコンテンツ配列」に変換されます。
次のステップ
- シナリオを実行する監視対象ファイルフォルダにPDFファイルをいくつか追加し、シナリオを実行してください。結合されたファイルは出力フォルダに表示されます。
- マージの順序ファイルは配列に表示される順序(通常はWatch Filesによって返される順序)でマージされます。
- ドキュメントパラメータと出力の詳細については、以下を参照してください。 複数のPDFを結合する:。