2011年10月10日月曜日

【習作】テキストフレームを内容に合わせる

ドキュメント上の全てのテキストフレームがフィットします。
グループ化されたテキストフレームも含む。
var tfObj=app.activeDocument.textFrames;
for(var i=0; i<tfObj.length; i++){
tfObj[i].fit(FitOptions.FRAME_TO_CONTENT);
}

var grObj = app.activeDocument.allPageItems;
for (var i=0; i<grObj.length;i++){
var grTF = grObj[i].textFrames;
for (var j=0; j<grTF.length; j++){
grTF[j].fit(FitOptions.FRAME_TO_CONTENT);
}
}



複数選択した場合(どんな時に使うのか分かりません)
var selObj = app.activeDocument.selection;
for(var s =0 ; s<selObj.length; s++) {
if(selObj[s].constructor.name =="TextFrame") {
selObj[s].fit(FitOptions.FRAME_TO_CONTENT);
}
}

for (var i=0; i<selObj.length;i++){
var grObj=selObj[i].allPageItems;
for (var g=0; g<grObj.length; g++){
if(grObj[g].constructor.name =="TextFrame") {
grObj[g].fit(FitOptions.FRAME_TO_CONTENT);
}
}
}

太字部分を変えればいろいろできる^^ 例えば、
**Obj[*].parentStory.verticalScale = 100;
**Obj[*].parentStory.horizontalScale = 100;
にすればテキストが正体に戻せる。
**Obj[*].parentStory.fillColor = "Black";
にすればテキストがBlackに。

追記:ラジオボタンなら上記の3つ(合わせ処理で計6つ)選べたら便利^^ と思いチャレンジしたが、やり方が悪いのか知らんが、グループテキストフレームと普通のテキストフレーム処理の2つを処理することができなかった。スクリプトで出来るのだからラジオボタンを使ってもできるはずだと思ってる。

再追記:ひとつにまとめられた!
var selObj = app.activeDocument;
for(var s =0 ; s<selObj.allPageItems.length; s++) {
if(selObj.allPageItems[s].constructor.name =="TextFrame") {
selObj.allPageItems[s].fit(FitOptions.FRAME_TO_CONTENT);
}
}

0 件のコメント:

コメントを投稿