Skip to main content
Dec 8, 2025 12:37 PM UTC
Answered

エリア文字内での文字のx座標の取り方

 

Illustrator の JSX で質問です。

エリア文字(ポイント内ではなく枠内に入力したテキスト)の中にある文字の x 座標 を取得したいのですが、どの方法でも undefined となってしまいます。

ポイント文字を作成して複製しても同様に取得できません。

具体的には、エリア文字内に入力した 苗字・名前 のそれぞれの文字長もしくは苗字、名前のそれぞれの中心のx座標を知りたいです。

この場合、スクリプト上でどのように処理すれば正確に座標を取得できますか?

Omachi
OmachiCorrect answer
Legend
Dec 8, 2025 11:50 PM UTC

Illustratorにおいて直接、文字の座標を取得する方法はありません。今までそれができるという話は聞いたことがないです。

特殊なケース(横組みの場合、行の先頭の文字のx座標はエリアテキスト自体のx座標に一致する)では取得可能です。また左揃えで文字組みが「なし」かつ全角幅の文字だけでの場合は文字サイズ×文字数で計算できます。

7 replies

Legend
Dec 13, 2025 12:20 AM UTC

869379i863F77679E56F637.png

おそらく直接はgetできませんが、透明部分を分割・拡張…をexecuteMenuCommandすることで文字を分解し、座標を得られます。色を互い違いにすると確実です。

 

透明部分を分割・拡張…のkeyは'Flatten Transparency'です。

Translate
Dec 14, 2025 4:38 AM UTC

ご回答くださりありがとうございます。

今回は一文字ずつ文字幅をとることで解決しました。

executeMenuCommand調べてみましたが、

とても便利そうなので使う機会があった際は活用させていただきます。

ありがとうございました。

Translate
Legend
Dec 14, 2025 8:50 AM UTC

どういたしまして。ぜひ使ってみてください。

 

あと内容を訂正します。executeMenuCommandだとダイアログが出てしまうので、スクリプトで完結させるには、事前に記録した透明部分を分割アクションを実行する形式にする必要がありました

Translate
Omachi
OmachiCorrect answer
Legend
Dec 8, 2025 11:50 PM UTC

Illustratorにおいて直接、文字の座標を取得する方法はありません。今までそれができるという話は聞いたことがないです。

特殊なケース(横組みの場合、行の先頭の文字のx座標はエリアテキスト自体のx座標に一致する)では取得可能です。また左揃えで文字組みが「なし」かつ全角幅の文字だけでの場合は文字サイズ×文字数で計算できます。

Translate
Dec 14, 2025 4:28 AM UTC

ご回答くださりありがとうございます。

おっしゃる通りで、文字の座標を取得することは無理なようでした。

今回はポイント文字に一文字ずつ入れ文字幅をとることで解決できました。

左揃えの場合のご説明もありがとうございました。同じような状況になった際に活用させていただきます。

Translate
Ten A
Community Expert
Community Expert
Dec 8, 2025 11:50 PM UTC

ポイントテキストの場合、実際のtextFrameの幅を確認(複製して必要な部分の文字だけを残す)すれば位置は得られますが、エリア内文字の場合、直接的な座標取得はできません。カーニングやトラッキング、詰め情報といったものの影響が無い全角送りの場合はcontentsの内容をみて計算すればいけそうですが、均等配置等の影響がある場合は正確な数値をピックアップすることは難しいです。アウトラインを取って各複合パスの位置情報を取るのが近い値を拾えると思いますが、テキストそのものの位置とは微妙に違ってくるでしょう。

Translate
Dec 14, 2025 4:23 AM UTC

ありがとうございます。

エリア内文字の内容を一文字ずつポイントテキストにすることで解決できました。

ご丁寧に回答をしてくださりありがとうございました。

Translate