よろしくお願いします。
IllustratorのCS5において、配置されたオブジェクトのオーバープリントを無効にするというスクリプトを書きました。長方形ツールなどで作成したオブジェクトに関しては下記スクリプトで無効にできたのですが、文字ツールで配置した文字に関しては無効にできませんでした。
もしお分かりの方がいらっしゃいましたら、どうすればいいかご返答いただけますでしょうか。よろしくお願いいたします。
for (i=0; i<activeDocument.pageItems.length; i++)
{ activeDocument.pageItems[i].fillOverprint = false; }
[13219] 森野クマ (2011/11/25 Fri 11:22)
文字と文字以外のオブジェクトでは扱いが異なります。
以下のソースではいかがでしょうか。
for (i=0; i<activeDocument.pageItems.length; i++) {
if(activeDocument.pageItems[i].typename == "TextFrame") {
activeDocument.pageItems[i].textRange.overprintFill = false;
}
else {
activeDocument.pageItems[i].fillOverprint = false;
}
}
[13220] いき◆OTKUlNBtV0 (2011/11/25 Fri 12:12) web
いま手元にCS3までしかありませんが、ちょっと見てみました。
pageItems[i].textRange.overprintFill = false;
のようです。
Illustratorはテキストの一部だけにオーバープリントを設定できたりもするし(意図せずとも、オーバープリントありのテキストからなしのテキスト内にペーストするなどで起こりえます)、
グループ、アピアランスなど深まるたびにいちいち個々の階層を見に行く必要があるため、
完璧にやろうとするとスクリプトだと逆に大変、とは思いますが。。
詳しくは、おぐぐりください。
[13221] (z-) (2011/11/25 Fri 12:14) web
ご返答ありがとうございました。
for (i=0; i<activeDocument.pageItems.length; i++)
{
activeDocument.pageItems[i].textRange.overprintFill = false;
}
これでうまくいきました。
大変助かりました。
完ぺきにはできないかもしれませんが、
できるところまでやってみたいと思います。
[13222] 森野クマ (2011/11/25 Fri 12:39)