イラストレーターのスクリプトを覚書として。
アウトラインをかけるとテキストフレームに入っていた
塗りの効果によって、フレーム全体が塗りつぶされてしまう現象がたまにあり、
毎回、線の部分だけ選択して削除などするのも面倒と感じていました。
この塗りは制作中に何か偶発的に入ってしまうようです。
外部からのデータだとどの様な作業の流れでこうなってしまうのか不明。
アピアランスの解除でも回避できるようだけど、
スクリプトで一発で処理ができないか調べてみました。
Adobe公式コミュニティ(Illustrator フォーラム)を参考に作成。
元コードに処理完了後に表示するようアラート追加。
コードは以下。
#target illustrator
var tf = app.activeDocument.textFrames;
for (var i=0; i<tf.length; i++)
{
try
{
tf[i].textPath.filled = false;
tf[i].textPath.stroked = false;
}
catch(e){}
}
alert( 'テキストフレームの塗りを解除しました' );
**コードの解説**
1. `var tf = app.activeDocument.textFrames;`
- アクティブなドキュメント内のすべてのテキストフレームを取得します。
2. `for (var i=0; i<tf.length; i++) { ... }`
- 取得したすべてのテキストフレームを順番に処理します。
3. `try { ... } catch(e){}`
- エラーハンドリングです。仮に処理できないテキストフレームがあっても、スクリプトが止まらずに処理を続行します。
4. `tf[i].textPath.filled = false;`
- テキストが配置されているパス(textPath)の**塗り**を「なし」にします。
5. `tf[i].textPath.stroked = false;`
- テキストが配置されているパス(textPath)の**線**を「なし」にします。
**主な用途**
- エリア内文字で、文字の外枠(背景)が塗りつぶされていたり、線が付いているのを一括で透明にしたい場合。
- パス上文字(Type on a Path)で、文字が沿っている線だけを消したい場合。
※このスクリプトは**文字(テキスト)自体の色は変更しません**。文字そのものも透明にしたい場合は、別途 `tf[i].textRange.characterAttributes.fillColor` を設定する必要があります。
参考元:
Adobe公式コミュニティ(Illustrator フォーラム)