開発者は、大きなPDFファイルを、より小さく扱いやすいセクションに分割する必要があることがよくあります。GroupDocs.Merger Cloud SDK for Node.JSを使用すれば、PDFを複数のパートに分割する作業が簡単になります。クラウドサービスが重い処理を担当し、開発者はアプリケーションロジックに集中できます。このガイドでは、完全な動作例を提供し、cURLで同じタスクを実行する方法を示し、分割操作を細かく調整できる構成オプションについて説明します。

Node.JS で PDF を複数に分割 - 完全コード例

この例では、GroupDocs.Merger Cloud SDK for Node.JSを使用してPDFを複数のPDFファイルに分割する方法を示します。

const fs = require('fs');
const path = require('path');
const GroupDocsMergerCloud = require('@groupdocs/merger-cloud');

// ---------- Set up API credentials ----------
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';

// ---------- Initialize API instances ----------
const mergerApi = new GroupDocsMergerCloud.MergerApi(client);
const storageApi = new GroupDocsMergerCloud.StorageApi(client);

// ---------- Helper to upload a local file to cloud storage ----------
async function uploadFile(localPath, cloudPath) {
    const fileData = fs.readFileSync(localPath);
    const uploadRequest = new GroupDocsMergerCloud.UploadFileRequest({
        path: cloudPath,
        file: fileData
    });
    await storageApi.uploadFile(uploadRequest);
}

// ---------- Helper to download a cloud file to local storage ----------
async function downloadFile(cloudPath, localPath) {
    const downloadRequest = new GroupDocsMergerCloud.DownloadFileRequest({ path: cloudPath });
    const response = await storageApi.downloadFile(downloadRequest);
    fs.writeFileSync(localPath, response);
}

// ---------- Main execution ----------
(async () => {
    try {
        // 1. Upload source PDF to cloud storage
        const localInputPdf = path.resolve(__dirname, 'input.pdf');          // local source PDF
        const cloudInputPdf = 'input/input.pdf';                            // cloud path
        await uploadFile(localInputPdf, cloudInputPdf);
        console.log('Uploaded PDF to cloud storage.');

        // 2. Configure split options (example: split into two parts: pages 1‑2 and 3‑5)
        const splitOptions = new GroupDocsMergerCloud.SplitOptions({
            pages: ['1-2', '3-5']                                            // page ranges to split
        });

        // 3. Build split request
        const splitRequest = new GroupDocsMergerCloud.SplitDocumentRequest({
            fileInfo: new GroupDocsMergerCloud.FileInfo({ filePath: cloudInputPdf }),
            options: splitOptions
        });

        // 4. Execute split operation
        const splitResult = await mergerApi.splitDocument(splitRequest);
        console.log(`Split operation completed. ${splitResult.length} parts generated.`);

        // 5. Download each split part and save locally
        for (let i = 0; i < splitResult.length; i++) {
            const partInfo = splitResult[i];
            const localOutputPath = path.resolve(__dirname, `output_part_${i + 1}.pdf`);
            await downloadFile(partInfo.path, localOutputPath);
            console.log(`Saved split part ${i + 1} to ${localOutputPath}`);
        }

        // 6. (Optional) Clean up cloud storage – delete uploaded source file
        const deleteRequest = new GroupDocsMergerCloud.DeleteFileRequest({ path: cloudInputPdf });
        await storageApi.deleteFile(deleteRequest);
        console.log('Cleaned up source file from cloud storage.');
    } catch (error) {
        console.error('Error during PDF split process:', error);
    }
})();

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

cURL を使用した REST API で PDF を分割

純粋な REST アプローチを好む場合、同じ分割操作を cURL コマンドで実行できます。以下の手順では、アクセストークンの取得、ソース PDF のアップロード、分割の実行、各パートのダウンロード方法を示します。

# 1. Get an access token (replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET)
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
# 2. Upload the source PDF (replace YOUR_ACCESS_TOKEN and adjust paths)
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/pdf" \
     --data-binary @./input.pdf
# 3. Execute the split operation (pages 1-2 and 3-5)
curl -X POST "https://api.groupdocs.cloud/v2.0/merger/split" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "input.pdf" },
           "options": { "pages": ["1-2","3-5"] }
         }'
# 4. Download each generated part (example for part 1)
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output_part_1.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o ./output_part_1.pdf

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

Node.JS で PDF を複数の PDF に分割する方法の仕組み

フローを理解することで、コードをより複雑なシナリオに適応させることができます。

  1. APIクライアントを初期化する - new GroupDocsMergerCloud.ApiClient() は、App SID と App Key を保持するクライアントを作成します。
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
  1. ソースファイルをアップロード - ヘルパー uploadFile はローカルの PDF を読み取り、storageApi.uploadFile を使用してクラウドストレージに送信します。
await uploadFile(localInputPdf, cloudInputPdf);
  1. 分割オプションを構成する - new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] }) は、サービスに抽出するページ範囲を指示します。
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
    pages: ['1-2', '3-5']
});
  1. 分割リクエストを送信する - mergerApi.splitDocument(splitRequest) はリクエストを送信し、生成された各パートに関する情報を含む配列を返します。
const splitResult = await mergerApi.splitDocument(splitRequest);
  1. 結果のダウンロード - ループは splitResult を反復し、各パートに対して downloadFile を呼び出してローカルに保存します。
for (let i = 0; i < splitResult.length; i++) {
    const partInfo = splitResult[i];
    await downloadFile(partInfo.path, localOutputPath);
}

各クラスとメソッドの詳細については、API リファレンスをご参照ください。

前提条件とセットアップ

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

  • Node.js 14 以上がインストールされていること。
  • 有効な App SID と App Key を持つ GroupDocs Cloud アカウント。
  • API 呼び出しのためにインターネットにアクセスできること。

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

npm install groupdocs-merger-cloud

バイナリはダウンロードページから直接取得することもできます。

分割オプションの微調整

SplitOptions オブジェクトは、調整できる複数のプロパティを提供します:

  • pages - ページ範囲の配列(例: ['1-2','3-5'])。これは例で使用される主要な設定です。
  • outputPath - 分割ファイルがクラウドストレージに保存されるオプションのフォルダー。
  • preserveMetadata - true に設定すると、元のドキュメントメタデータが各パートにコピーされます。詳細なオプションについては、API reference を参照してください。

これらの値を調整することで、各生成された PDF のサイズ、名前付け、メタデータを制御できます。

結論

Node.JS で PDF を複数の PDF に分割することは、GroupDocs.Merger Cloud SDK for Node.JS を使用すると簡単になります。この SDK はファイルのアップロード、ページ範囲の選択、結果の取得を処理し、出力をワークフローに統合することに集中できるようにします。App SID と App Key を安全に保管し、実稼働環境では商用ライセンスの使用を検討してください。価格の詳細は製品ページで確認でき、一時ライセンスページ から一時ライセンスを取得できます。本ガイドのコード、cURL の例、設定のヒントを活用すれば、Node.JS アプリケーションで堅牢な PDF 分割を実装する準備が整います。

よくある質問

  • Node.JSでカスタムページ範囲を使用してPDFを複数のPDFに分割する方法は?
    SplitOptions の pages プロパティを使用して、必要な範囲(例: ['1-3','4-6'])を定義します。SDKは各範囲ごとに個別のPDFを生成します。

  • PDF をクラウドストレージに永続的に保存せずに分割できますか?
    はい。ソース ファイルをアップロードし、分割が完了したら、例に示すように storageApi.deleteFile で元のファイルを削除できます。

  • 本番環境で split 機能を使用するには有料ライセンスが必要ですか?
    本番環境での使用には商用ライセンスが必要です。価格については製品ページをご覧いただき、評価用に一時ライセンスページから取得してください。

もっと読む