複数のPDFドキュメントを単一のファイルに結合することは、ドキュメントワークフローの構築やレポート作成時に頻繁に求められる要件です。GroupDocs.Merger Cloud SDK for Node.jsを使用すれば、低レベルのPDF構造を扱うことなく、Node.JSでPDFを簡単にマージできます。このガイドでは、セットアップからステップバイステップの実装、完全なコード例、同等のcURL呼び出し、そして大きなまたは暗号化されたPDFに対するパフォーマンスのヒントまでをご紹介します。

開始する前に: 前提条件とインストール

開始する前に、以下が揃っていることを確認してください:

  • 開発マシンに Node.js 14 以降がインストールされていること。
  • クライアント ID とクライアント シークレットを持つ有効な GroupDocs Cloud アカウント。
  • 結合したい PDF ファイルへのアクセス権があり、これらが GroupDocs Cloud ストレージに保存されていること。

npm を使用して SDK をインストールし、最新のパッケージをダウンロードします:

npm install groupdocs-merger-cloud

公式リリースページから SDK を取得することもできます: Download SDK。インストールが完了したら、すぐにコーディングを開始できます。

Node.JS で PDF をマージするステップバイステップガイド

ステップ 1: SDK のインストールと必要なクラスのインポート

まず、PDF を結合するために必要なクラスをインポートします。

const { MergeApi, MergeOptions, FileInfo, Configuration } = require("@groupdocs/merger-cloud");

このインポートにより、コア API、構成オブジェクト、およびファイルディスクリプタへのアクセスが可能になります。

ステップ 2: GroupDocs の認証情報を設定する

クライアント資格情報を使用して構成オブジェクトを作成します。

const config = new Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET"
});

正しい認証情報を提供すると、ライブラリがリクエストを認証できるようになります。

ステップ 3: 結合する PDF ファイルを定義する

結合したい PDF ドキュメントを一覧にしてください。この手順により、Node.JS で PDF を効率的にマージできます。

const filesToMerge = [
    new FileInfo({ filePath: "input1.pdf" }),
    new FileInfo({ filePath: "input2.pdf" })
];

各 FileInfo は、GroupDocs Cloud ストレージに保存されているファイルを指します。

ステップ 4: マージ オプションを設定

出力先を設定し、ファイルリストをマージリクエストに添付します。

const mergeOptions = new MergeOptions();
mergeOptions.fileInfos = filesToMerge;
mergeOptions.outputPath = "merged_output.pdf";

これらの設定は、Node.JS で PDF をマージする方法と、結果が保存される場所を制御します。

ステップ 5: マージ操作を実行する

API インスタンスを作成し、merge メソッドを呼び出して、レスポンスを処理します。

const mergeApi = new MergeApi(config);

try {
    const result = await mergeApi.mergeDocuments(mergeOptions);
    console.log("Merge completed. Output file stored at:", result.path);
} catch (error) {
    console.error("Error during PDF merge:", error);
}

非同期呼び出しは、操作が成功した場合、マージされたドキュメントのパスを返します。

Node.JS で PDF をマージする完全実装例

次のコードは、構成から結果の処理までの完全なワークフローを示しています。

const { MergeApi, MergeOptions, FileInfo, Configuration } = require("@groupdocs/merger-cloud");

// Configure the SDK (replace with your actual credentials)
const config = new Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET"
});

async function mergePdfFiles() {
    // Initialize the Merge API
    const mergeApi = new MergeApi(config);

// Define the PDF files to be merged (must exist in GroupDocs Cloud storage)
    const filesToMerge = [
        new FileInfo({ filePath: "input1.pdf" }),
        new FileInfo({ filePath: "input2.pdf" })
    ];

// Set merge options
    const mergeOptions = new MergeOptions();
    mergeOptions.fileInfos = filesToMerge;
    mergeOptions.outputPath = "merged_output.pdf";

try {
        // Perform the merge operation
        const result = await mergeApi.mergeDocuments(mergeOptions);
        console.log("Merge completed. Output file stored at:", result.path);
    } catch (error) {
        console.error("Error during PDF merge:", error);
    }
}

// Execute the merge
mergePdfFiles();

Note: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパスや構成値を実際の環境に合わせて更新し、すべての必須依存関係が正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメントをご参照いただくか、サポートチームにお問い合わせください。

cURL を使用した REST API による PDF の結合

純粋なRESTアプローチを好む場合、同じ操作はcURLコマンドで実行できます。

まず、アクセストークンを取得します:

curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET","grant_type":"client_credentials"}'

ソースPDFをストレージにアップロードします(YOUR_ACCESS_TOKEN を前の手順から取得したトークンに置き換えてください):

curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input1.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@/local/path/input1.pdf"

input2.pdf のアップロードを繰り返します。次に、マージ操作をリクエストします:

curl -X POST "https://api.groupdocs.cloud/v2.0/merger/merge" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfos": [
               {"filePath":"input1.pdf"},
               {"filePath":"input2.pdf"}
           ],
           "outputPath":"merged_output.pdf"
         }'

最後に、マージされたファイルをダウンロードしてください:

curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/download?path=merged_output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o merged_output.pdf

エンドポイントとパラメータの完全な一覧については、API referenceをご確認ください。

マージ オプションの設定

SDK はマージ プロセスを微調整できるいくつかのオプションを提供します:

  • outputPath - 結合された PDF の保存先パス。結果が保存される場所を制御するために調整します。
  • fileInfos - ソース PDF とその順序を定義する FileInfo オブジェクトの配列。

特定のページ範囲を結合するための pages や、暗号化された PDF 用の password など、追加のプロパティを設定することもできます。設定可能なフィールドの完全な一覧については、公式ドキュメント を参照してください。

PDF のマージに関するパフォーマンス上の考慮事項

大きな PDF ファイルや多数の PDF ファイルを結合する際は、次のヒントを覚えておいてください。

  • async/await を使用して、特に大きなドキュメントでイベントループのブロックを回避します。
  • バッチアップロード: マージを呼び出す前にソース PDF を並列にアップロードし、全体のレイテンシを削減します。
  • ストリーム処理: 非常に大きな PDF の場合、途中結果をクラウドストレージに保存し、より小さなチャンクでマージすることを検討してください。
  • 暗号化された PDF: FileInfo オブジェクトにパスワードを提供します。暗号化ファイルの処理はオーバーヘッドが増えるため、可能な限り復号後にマージしてください。

これらの実践を適用することで、Node.JS で PDF を効率的にマージし、メモリ消費を最小限に抑えることができます。

よくある質問

  • Node.JSでGroupDocsを使用してPDFファイルを結合するにはどうすればよいですか?
    GroupDocs.Merger Cloud SDK for Node.js を使用して MergeApi インスタンスを作成し、ソースPDFを使用して MergeOptions を構成し、mergeDocuments を呼び出します。このガイドの完全なコード例がプロセスを示しています。

  • Node.JSで暗号化されたPDFファイルをマージできますか?
    はい、SDKは暗号化されたPDFのマージをサポートしています。mergeDocuments を呼び出す前に、FileInfo オブジェクトに正しいパスワードを設定してください。詳細は公式ドキュメントをご覧ください。

  • GroupDocs.Merger のライセンスオプションは何ですか?
    GroupDocs は柔軟な価格プランを提供しています。テスト用に、完全なサブスクリプションを購入する前にライブラリを評価するために、一時ライセンス をリクエストできます。

  • さらにサンプルやサポートはどこで見つけられますか?
    追加のサンプルはGitHub リポジトリで入手できます。サポートが必要な場合は、サポート フォーラムをご覧ください。

さらに読む