見出し画像

indesignに配置されたJPEG・PNG画像を同名のPSDに差し替えるスクリプト

はたして需要はあるのか。
indesignに配置されたJPEGやPNG画像を、同名のPSDにサクッと差し替えるスクリプトです。配置しなおそうとすると、アタリが変わってクソ面倒くせえ!っていうときに使えます。


var doc = app.activeDocument; // 現在のドキュメントを取得
var convertedFiles = []; // 変換されたファイル名を格納する配列
var skippedFiles = []; // すでにPSDのためスキップされたファイル名を格納する配列
var nonConvertedFiles = []; // 未変換ファイルを格納する配列

for (var i = 0; i < doc.allGraphics.length; i++) { // ドキュメント内のすべての画像をループ
    var graphic = doc.allGraphics[i];
    var link = graphic.itemLink;
    var linkFile = new File(link.filePath); // リンクの現在のファイルを取得

    if (linkFile.name.toLowerCase().match(/\.psd$/)) {
        skippedFiles.push(linkFile.name); // すでにPSDの場合はスキップ
        continue;
    }

    if (linkFile.name.toLowerCase().match(/\.(jpg|png)$/)) { // ファイルが.jpgまたは.pngであるかどうかを確認
        var newLinkFile = new File(linkFile.path + "/" + linkFile.name.replace(/\.(jpg|png)$/i, '.psd')); // 同名の.psdファイルへの新しいパスを作成
        if (newLinkFile.exists) { // 新しい.psdファイルが存在するかどうかを確認
            link.relink(newLinkFile); // リンクを新しい.psdファイルに置換
            link.update(); // リンクを更新
            convertedFiles.push(linkFile.name); // 変換されたファイルを記録
        } else {
            nonConvertedFiles.push(linkFile.name); // PSDファイルが存在しない場合は未変換リストに追加
        }
    }
}

var message = "変換が終了しました。\n\n変換されたファイル:\n" + convertedFiles.join("\n") + 
              "\n\nスキップされたファイル (既にPSD):\n" + skippedFiles.join("\n") +
              "\n\n未変換ファイル (PSDファイルが存在しない):\n" + nonConvertedFiles.join("\n");
alert(message); // 最後に結果を表示

上記のコードをメモ帳にコピペして、拡張子を.jsxで保存。
Indesignのスクリプトを追加するフォルダにぶち込んでください。
スクリプトパネルで右クリックすると出てきます。

大体の人は画像をLinksフォルダに入れてると思いますので、同じフォルダに差し替えるpsdデータを入れてこのスクリプトを実行すると、同名のJPGやPNG画像でアタリを取っていたものが同じ名前のPSDに差し替えられます。

変換めんどくせー!って適当にJPGのまま進めて、
あとになって高解像度の実画像に差し替える必要が出てきて面倒な事になった事がある人も多いと思います。

サポートはしません。
印刷事故っても責任は取りません。

いいなと思ったら応援しよう!