linnet

Photoshop用テキスト書き出しスクリプト

以前、作成したPhotoshop用スクリプトが今でも動作するので再掲します。 テキストレイヤーのレイヤー名を取得する形です。

以下のコードをテキストエディタにコピペして、拡張子「.js」で保存し、Photoshopの「ファイル」>「スクリプト」>「参照」から上記のファイルを選択後、ファイル保存のダイアログが表示されるので、適宜ファイル名を付けて保存ボタンをクリックするだけです。

実行にはやや時間が掛かりますので、ご注意ください。

CR = String.fromCharCode(13);
savename = File.saveDialog("保存するファイル名を入れてください");
if (savename) {
  var fileObj = new File(savename);
  var flag = fileObj.open("w");
  if (flag == true) {
    writeLayerName(activeDocument);
    fileObj.close();
  } else {
    alert("ファイルが開けませんでした");
  }
}

// レイヤーセット内にレイヤーが含まれる限り書き出し(再帰)
function writeLayerName(layObj) {
  var n = layObj.artLayers.length;
  for (var i=0; i<n; i++) {
    if (layObj.artLayers[i].kind == LayerKind.TEXT) {
      txt = layObj.artLayers[i].textItem.contents;
      fileObj.write(txt+CR+"---------"+CR); // レイヤー間の区切りにハイフン追加
    }
  }
  var ns = layObj.layerSets.length;
  for (var i=0; i<ns; i++) {
    writeLayerName(layObj.layerSets[i])
  }
}