:note

ダイレクト選択でのアンカーが取得できないのでラベル付与

PICTRIXさんのところで話題になっていた「InDesignのオブジェクトをダイレクト選択したアンカーをJavaScriptで取得できない」(http://www.pictrix.jp/?p=2922)件、そういわれればそうだな。自分も一度はまった。

自分確認用ですが、こんなのでチェックしたりします。複合パスは最初パス(paths[0])だけにラベル付けします。

以前にこの処理のあとに prompt() でどのアンカーにするか番号入れて、終わったら削除みたいな工程を考えたりした事があるのですが、どうも再描画がうまくいかなくて prompt() で止まったときに、肝心の数字が読めないのです。(今回あらためて、 $.sleep() してみても、 zoom() しなおしてみてもだめ、Macの問題かな?)ということでお蔵入りしていたスニペットです。

//パスポイントにindexのラベル付け
var doc = app.documents[0];
var sel = doc.selection[0];
var ppp = sel.paths[0].pathPoints;
var gr = [];
for(var i=0; i < ppp.length; i++){
  var ppAn = ppp[i].anchor;
  var ppIn = ppp[i].index;
  var tf = sel.parent.textFrames.add();
  tf.contents = ppIn.toString();
  tf.fillColor = "Yellow";
  tf.geometricBounds = [ppAn[1], ppAn[0], ppAn[1]+4, ppAn[0]+6];
  tf.textWrapPreferences.textWrapType = TextWrapTypes.NONE;
  gr.push(tf);
}
var ggg = sel.parent.groups.add( gr );
//ggg.remove();

 
comments powered by Disqus
back to top