よく使うのでAdobe Photoshop CS3自動化作戦を見て、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])
}
}
ちょっと遅いけど、便利。
以下、ソース。使い方は上記の自動化作戦を参考に。
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])
}
}