DTPオペレーターのInDesign、Javascript関連セーブデータ。ただいま過去記事の整理中のため、記事が突然消えたり現れたり、記事の内容が微妙に変わったりします。最近は主にTwitter(@subi_omu)で活動。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
InDesignに配置したAI画像のレイヤーをオンオフするスクリプト(一時メモ)
とりあえずメモ。記事はあとで書きます。


「上から何番目のレイヤー」でオンオフ

var myObj = app.activeDocument.allGraphics;
for(i=0; i<myObj.length; i++) {
if((myObj[i].imageTypeName == "Adobe PDF")) {

//上から3層目を表示
try{
myObj[i].graphicLayerOptions.graphicLayers[2].currentVisibility = true;
} catch (e){
}

}
}


レイヤー名でオンオフ

var myObj = app.activeDocument.allGraphics;
for(i=0; i<myObj.length; i++) {
if((myObj[i].imageTypeName == "Adobe PDF")) {

//「レイヤー 3」を表示
try{
myObj[i].graphicLayerOptions.graphicLayers.itemByName('レイヤー 3').currentVisibility = true;
} catch (e){
}

}
}

・アレな点
imageTypeNameがIllustrator画像もPDFもAdobe PDFなので、レイヤーつきPDFが配置してあると一緒に処理される。事故防止にはちゃんとオンオフするためにかぶらないレイヤー名をつけるのがベター。そもそも画像判別はimageTypeNameではなく配置画像の拡張子を使うほうがよいかも。





追記
拡張子aiかAIのときだけレイヤー表示

var myObj = app.activeDocument.allGraphics;
for(i=0; i<myObj.length; i++) {
var myImage = myObj[i].itemLink.name;
if((myImage.search(/.AI$/i) >= 1)) {

try{
//3層目を表示
myObj[i].graphicLayerOptions.graphicLayers[1].currentVisibility = true;
} catch (e){
}

}
}

あとはパレット出してどのレイヤーをオンオフするか選べれるようにするとかかなー
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。