アピアランスを殺すスクリプト
先日のアピアランスをスクリプトでなんとかするやつには弱点があります。
まず、イラストレータのオブジェクトをスクリプト側から見ると追加された塗りや線は見えません。そして、既存のエフェクトは触ることも不可能です。
素のページオブジェクトに対してライブエフェクトを適用出来るだけの非常にシンプルな仕組みなのですね。
そんなこんなで、せめてアピアランスを取っ払うぐらい出来るよな? って思って調べるのですが、どうもそんな気の利いた事は出来ないようです。
しかしながら、この「アピアランスを消去」はアクションでなんとかなるようです。
まあ、単純な事でして…
function reduceAppearances(){
var ac = '/version 3 /name [ 8 74656d7073657431] /isOpen 1 /actionCount 1'
+ '/action-1 {/name [ 7 616374696f6e31] /keyIndex 0 /colorIndex 0 /isOpen 1 /eventCount 1'
+ '/event-1 {/useRulersIn1stQuadrant 0 /internalName (ai_plugin_appearance)'
+ '/localizedName [ 18 e382a2e38394e382a2e383a9e383b3e382b9]'
+ '/isOpen 1 /isOn 1 /hasDialog 0 /parameterCount 1'
+ '/parameter-1 {/key 1835363957 /showInPalette 4294967295 /type (enumerated)'
+ '/name [ 27 e382a2e38394e382a2e383a9e383b3e382b9e38292e6b688e58ebb]'
+ '/value 6}}}';
var tmp = File(Folder.desktop + "/tmpSet1.aia");
tmp.open('w');
tmp.write(actionCode);
tmp.close();
app.loadAction(tmp);
app.doScript("action1", "tmpSet1", false);
app.unloadAction("tmpSet1","");
tmp.remove();
}
reduceAppearances();
この様にアクションセットを生成して、読込んで実行してから作ったセットを捨てるという動作ですね。
この手順、結構応用が効きます。