[業務効率化] InDesignスクリプトで複数のファイルを一括PDF化し、1つのフォルダにまとめる方法

InDesignを使った作業の中で、複数のInDesignファイルを一括でPDF化し、すべてを1つのフォルダにまとめたい場合があります。手作業でPDF化するのは非常に時間がかかるため、スクリプトを使った自動化がおすすめです。この記事では、InDesignスクリプトを使用して効率的に作業を進める方法をご紹介します。


実現したいこと

  1. 複数のInDesignファイルを一括でPDF化する。

  2. PDFファイルをすべて1つの指定フォルダにまとめる。

  3. サブフォルダ内のInDesignファイルにも対応。

完成したスクリプト

以下のスクリプトを使用することで、上記の要件を簡単に実現できます。スクリプトはAdobe InDesignのスクリプトパネルから実行可能です。

// PDFを保存するフォルダを選択
var outputFolder = Folder.selectDialog("PDFを保存するフォルダを選択してください");

if (outputFolder != null) {
    var folder = Folder.selectDialog("InDesignファイルが含まれるフォルダを選択してください");

    if (folder != null) {
        var tempPDFs = [];
        processFolder(folder, tempPDFs, outputFolder);
        alert("すべてのPDFが " + outputFolder.fsName + " に保存されました!");
    } else {
        alert("InDesignファイルのフォルダが選択されませんでした。");
    }
} else {
    alert("PDF保存用のフォルダが選択されませんでした。");
}

function processFolder(folder, tempPDFs, outputFolder) {
    var files = folder.getFiles();
    for (var i = 0; i < files.length; i++) {
        var file = files[i];
        if (file instanceof Folder) {
            processFolder(file, tempPDFs, outputFolder); // サブフォルダを再帰的に処理
        } else if (file.name.match(/\.indd$/i)) {
            var tempPDF = exportToPDF(file, outputFolder);
            if (tempPDF) tempPDFs.push(tempPDF);
        }
    }
}

function exportToPDF(inddFile, outputFolder) {
    try {
        var doc = app.open(inddFile); // InDesignファイルを開く
        var pdfFileName = inddFile.name.replace(/\.indd$/i, ".pdf");
        var pdfFile = File(outputFolder + "/" + pdfFileName); // PDFを指定フォルダに保存
        var pdfPreset = app.pdfExportPresets.item("[高品質印刷]"); // PDFプリセット
        doc.exportFile(ExportFormat.PDF_TYPE, pdfFile, false, pdfPreset);
        doc.close(SaveOptions.NO);
        $.writeln("PDF化成功: " + pdfFile.fsName);
        return pdfFile;
    } catch (e) {
        $.writeln("エラー: " + e.message);
        return null;
    }
}

使い方

  1. スクリプトを保存

    • 上記のコードをテキストエディタ(例: メモ帳)にコピーし、export_indesign_pdfs.jsxという名前で保存します。

  2. スクリプトパネルに配置

    • InDesignを開き、「ウィンドウ > ユーティリティ > スクリプト」を選択します。

    • スクリプトパネルで「ユーザースクリプト」を右クリックし、「スクリプトフォルダを表示」を選択します。

    • 保存したexport_indesign_pdfs.jsxファイルをこのフォルダにコピーします。

  3. スクリプトを実行

    • スクリプトパネルに表示されたスクリプトをダブルクリックします。

    • 最初に「PDFを保存するフォルダ」を選択。

    • 次に「InDesignファイルが含まれるフォルダ」を選択します。

  4. 結果を確認

    • 選択した保存フォルダに、すべてのInDesignファイルから生成されたPDFがまとめて保存されます。


スクリプトのポイント

  1. 一括処理
    選択したフォルダ内にあるすべてのInDesignファイル(サブフォルダを含む)をPDF化します。

  2. 保存先の統一
    PDFはすべて選択した1つのフォルダに保存されるため、ファイルの管理が簡単になります。

  3. エラーハンドリング
    エラーが発生してもスクリプト全体が停止せず、次のファイルに進む仕組みを取り入れています。


注意点

  • PDFプリセット
    デフォルトでは[高品質印刷]のプリセットを使用しています。必要に応じてプリセットを変更してください。

  • スクリプトの動作環境
    Adobe InDesignがインストールされている環境で動作します。

  • ファイル名の重複
    同名のPDFがすでに保存フォルダ内に存在する場合、上書きされる点に注意してください。


まとめ

このスクリプトを使うことで、InDesignファイルのPDF化と整理が大幅に効率化できます。一度設定してしまえば、数クリックで作業が完了するため、時間と労力を大幅に削減できるでしょう。PDFの結合が必要な場合には、Adobe AcrobatやPythonなどのツールと組み合わせることでさらなる自動化も可能です。