IllustratorCS4と5で最前面のドキュメントすべてのテキストフレームをアウトライン化します。アウトライン化するまえにバックアップしておく事を強くおすすめします。
たぶん他のバーションのIllustratorでも動くと思います。
DTPBooster13で質問されて、出来るかなーって検証してたら結局作ってしまいました。
こうちゃん犬猫まみれさんもAppleScriptでアップされています。会場ではじめてお会いしました。ずいぶん若い好青年だった。
■■■使い方■■■
Illustratorドキュメントを開いている状態で使用してください。
実行すると
まずは全レイヤーのロックを解除します。
後はテキストフレームのロックを解除してどんどんアウトライン化していきます。
非表示のオブジェクトは一瞬表示してアウトラインして非表示に戻します。
非表示のレイヤーの中などにテキストフレームがあり、失敗した場合はメッセージを出します。
DTPBooster13の質問のお答え。難しいかと思ったら簡単だった。
ちなみにconvert to pathsがあるって質問に答えたんですがAppleScriptでした。
ダウンロードはこちらAiOutline.zip
ソースも
非表示のレイヤーの中などにテキストフレームがあり、失敗した場合はメッセージを出します。
DTPBooster13の質問のお答え。難しいかと思ったら簡単だった。
ちなみにconvert to pathsがあるって質問に答えたんですがAppleScriptでした。
ダウンロードはこちらAiOutline.zip
ソースも
var mydoc = app.documents[0];
//レイヤーのロックだけは解除しておく
layerUnLock(mydoc);
var tfitems = mydoc.textFrames;
var tfcount = tfitems.length;
var mymsg = "";
for(var i = tfcount - 1;i > -1;i--){
try{
visiblebak = tfitems[i].hidden;
tfitems[i].locked = false;
var newgroup = tfitems[i].createOutline();
newgroup.hidden = visiblebak;
}catch(e){
mymsg = "アウトラインできなかったオブジェクトがあります。";
}
}
if(mymsg != ""){
alert(mymsg);
}
function layerUnLock(myObj){
var lycount = myObj.layers.length;
for(var n = 0;n < lycount;n++){
if(myObj.layers[n].visible == true){
myObj.layers[n].locked = false;
layerUnLock(myObj.layers[n])
}
}
}
ありがとうございます(^o^)/
まさか、作っていただけるとは! 本当に助かります!
問題なく、スカッとアウトラインをとってくれてます!
スクリプトは会場でお話ししました通りの超初心者なので
(自分で作ると)どれだけかかるやら?と思っていました。
通常はIndesignを使うことが多いのですが
質問の仕事はIllustratorで、しかも多数ファイル。
こういう時こそ、スクリプト! やっぱり、便利です!
ちゃんと勉強する必要性がありますね。
最後に重ねて重ねてお礼を申し上げます。
>booster13質問者さん
こんにちは。作っちゃいました(笑)
グループの中とかレイヤーやサブレイヤーの中とか
おっかけていってちょっとテクニックがいるかとおもいきや
単にドキュメントのテキストフレームを数えてアウトラインするだけ。
(Illustratorってそういう事あります。)
レイヤーのロックや非表示を考えなければもっと簡単でした。
ちょうどいい練習になったかもしれませんね。書かなきゃ良かったかなぁ。。。反省
また、ぜひスクリプトにチャレンジしてくださいね。