:note

文字または挿入点の座標を知る

以前、 “InDesign_センタリングされた行の一文字目の座標を知る” で書いた、文字をアウトライン化して座標を割り出すというやり方では、挿入点は割り出せません(必要かどうかは別として)、また、オブジェクトをグラフィック化&削除というのは負荷がかかる処理です。

Adobe Forums: JS/CS3 or 4:Geometry for texts にて、いいことを教えてもらったのでメモ。

文字または挿入点の座標を知る /images/2010/09/675-textPosition.png

テキスト類のプロパティである HorizontalOffset を使えばいいらしい。これなら挿入点(InsertionPoint)もわかります、表組み中の座標とかを求めるのでもつかえそう。あわせて、BasslineとAscentとDescentを組み合わせたら、上下が求められます。テキスト終わり(右側)を求められそうなプロパティはなんだろう? ちょっと思いつかない。あと縦書きだとちょっと挙動が変です。いたしかたあるまい?

//テキスト選択部分にガイド作成(挿入点も可)
var doc=app.documents[0];
var sel=doc.selection[0];
var guid_VaHo=doc.guides.add ({orientation: HorizontalOrVertical.VERTICAL, location: sel.horizontalOffset});
var guid_HoBa=doc.guides.add ({orientation: HorizontalOrVertical.HORIZONTAL, location: sel.baseline});
var guid_HoAs=doc.guides.add ({orientation: HorizontalOrVertical.HORIZONTAL, location: sel.baseline-sel.ascent});
var guid_HoDs=doc.guides.add ({orientation: HorizontalOrVertical.HORIZONTAL, location: sel.baseline+sel.descent});
 
comments powered by Disqus
back to top