JavaScriptでフレームグリッドを操作したい
[9217]JavaScriptでフレームグリッドを操作したい 投稿者:ユウダイ 投稿日:2006/06/03(Sat) 01:27
いつも、参考にさせていただいています。
InDesign CS WinXPです。
欧文の文字詰め調整を自動化するスクリプトを書こうと思っていまして、
その際に、フレームグリッドかプレーンテキストフレームかを
判定する必要が出てきたのですが、
もしかしてそもそもスクリプトは
フレームグリッドに対応していないのでしょうか?
リファレンスを探してみたのですが、
どうもフレームグリッドをあらわす
プロパティが見つからなくて。
もしわかる方がいらっしゃれば
ご教授いただけると幸いです。
» 1
InDesign CS WinXPです。
欧文の文字詰め調整を自動化するスクリプトを書こうと思っていまして、
その際に、フレームグリッドかプレーンテキストフレームかを
判定する必要が出てきたのですが、
もしかしてそもそもスクリプトは
フレームグリッドに対応していないのでしょうか?
リファレンスを探してみたのですが、
どうもフレームグリッドをあらわす
プロパティが見つからなくて。
もしわかる方がいらっしゃれば
ご教授いただけると幸いです。
[9217へのレス]Re: JavaScriptでフレームグリッドを操作したい 投稿者:お~まち 投稿日:2006/06/03(Sat) 11:41
テキストフレームに、フレームグリッド関連の情報はありません。
試しにInDesign上で、テキストフレームを2つ作って連結させてみて下さい。その上で片方のテキストフレームをフレームグリッドに変更すると、もう1つのテキストフレームもフレームグリッドに変更されるはずです。つまり、フレームグリッドはテキストフレーム固有の情報ではないのです。
では、どこでフレームグリッドの情報を持つかと言うと、Storyオブジェクトです。TextFrameにParentStoryというプロパティがあると思いますが、それが、連結された2つのテキストフレームの上位に存在するStoryオブジェクトなのです。このStoryオブジェクトにGridDataというプロパティがあり、そこで指定されるGridDataInformationオブジェクトこそ、フレームグリッドの設定です。
» 2
試しにInDesign上で、テキストフレームを2つ作って連結させてみて下さい。その上で片方のテキストフレームをフレームグリッドに変更すると、もう1つのテキストフレームもフレームグリッドに変更されるはずです。つまり、フレームグリッドはテキストフレーム固有の情報ではないのです。
では、どこでフレームグリッドの情報を持つかと言うと、Storyオブジェクトです。TextFrameにParentStoryというプロパティがあると思いますが、それが、連結された2つのテキストフレームの上位に存在するStoryオブジェクトなのです。このStoryオブジェクトにGridDataというプロパティがあり、そこで指定されるGridDataInformationオブジェクトこそ、フレームグリッドの設定です。
[9217へのレス]Re: JavaScriptでフレームグリッドを操作したい 投稿者:ユウダイ 投稿日:2006/06/05(Mon) 13:54
ありがとうございます。
gridDataプロパティは確認しました。
いろいろとやってみますが、
もしお手数でなければ、
字間を指定するプロパティが
わかれば教えていただけると助かります。
» 3
gridDataプロパティは確認しました。
いろいろとやってみますが、
もしお手数でなければ、
字間を指定するプロパティが
わかれば教えていただけると助かります。
[9217へのレス]Re: JavaScriptでフレームグリッドを操作したい 投稿者:お~まち 投稿日:2006/06/05(Mon) 14:36
お手数です。と書こうとしたんですが、調べてみたらGridDataInformationオブジェクトはリファレンスに載ってないんですね。それじゃあ分かるわけないか……。
ということで今回はおまけのおまけでCSでのGridDataInformationオブジェクトのプロパティを書いておきますね。ただしVBScriptなので、適宜JavaScriptに変換して下さい。
プロパティ/値
AppliedFont/FontオブジェクトまたはString
CharacterAki/Double
CharacterAlignment/idCharacterAlignment
FontStyle/String
GridAlignmen/idGridAlignment
HorizontalScale/Double
LineAki/Double
LineAlignment/idLineAlignment
Parent/Story, Page, NamedGrid
PointSize/Double
VerticalScale/Double
もう少しまともなリファレンスならこんなこと書かなくて済むのにね。
» 4
ということで今回はおまけのおまけでCSでのGridDataInformationオブジェクトのプロパティを書いておきますね。ただしVBScriptなので、適宜JavaScriptに変換して下さい。
プロパティ/値
AppliedFont/FontオブジェクトまたはString
CharacterAki/Double
CharacterAlignment/idCharacterAlignment
FontStyle/String
GridAlignmen/idGridAlignment
HorizontalScale/Double
LineAki/Double
LineAlignment/idLineAlignment
Parent/Story, Page, NamedGrid
PointSize/Double
VerticalScale/Double
もう少しまともなリファレンスならこんなこと書かなくて済むのにね。
[9217へのレス]Re: JavaScriptでフレームグリッドを操作したい 投稿者:ユウダイ 投稿日:2006/06/05(Mon) 15:21
ありがとうございます!
ほんとにちゃんとしたリファレンス欲しいです。。。
Web公開でもいいから。
お答えできないのかもしれませんが
お~まちさんはなんでこういった”非公開?”の
情報をご存知なのですか?
プログラムを解析しているのでしょうか?
それともプロパティを書き出すコマンドがあったり?
» 5
ほんとにちゃんとしたリファレンス欲しいです。。。
Web公開でもいいから。
お答えできないのかもしれませんが
お~まちさんはなんでこういった”非公開?”の
情報をご存知なのですか?
プログラムを解析しているのでしょうか?
それともプロパティを書き出すコマンドがあったり?
[9217へのレス]Re: JavaScriptでフレームグリッドを操作したい 投稿者:お~まち 投稿日:2006/06/05(Mon) 17:18
VB(もしくはVBA)にはオブジェクトブラウザといって、そのアプリケーションが提供しているオブジェクトのプロパティ・メソッドを表示してくれる機能があるのです。ですからリファレンスに記載していないオブジェクトも知ることができます。
また、ローカルウォッチという、デバッグ中に各プロパティを表示してくれる機能もあります(こちらの方はCS2に付属のJavaScriptエディタ「ExtendScript Toolkit」のデータブラウザと同じようなものです)。
CSのJavaScriptではそれらがないので、ある程度InDesignのオブジェクトに慣れていないと難しいと思います。JavaScriptにこだわる必要(Win、Macの両方で動かさなければならないなど)がなければ、VBScriptをお勧めします。
もうひとつ。スクリプトでInDesignを動かすことが飯の種なので、お金がもらえる程度に詳しくないと困るのです。
» 6
また、ローカルウォッチという、デバッグ中に各プロパティを表示してくれる機能もあります(こちらの方はCS2に付属のJavaScriptエディタ「ExtendScript Toolkit」のデータブラウザと同じようなものです)。
CSのJavaScriptではそれらがないので、ある程度InDesignのオブジェクトに慣れていないと難しいと思います。JavaScriptにこだわる必要(Win、Macの両方で動かさなければならないなど)がなければ、VBScriptをお勧めします。
もうひとつ。スクリプトでInDesignを動かすことが飯の種なので、お金がもらえる程度に詳しくないと困るのです。
[9217へのレス]Re: JavaScriptでフレームグリッドを操作したい 投稿者:ユウダイ 投稿日:2006/06/05(Mon) 18:33
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)