それでは次にInDesign CSで文字を表示してみましょう。以下のプログラムを入力してみてください。
pageObj = app.documents.add()
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["1cm","0.5cm","5cm","10cm"];
txtObj.contentType = ContentType.textType;
txtObj.contents = "InDesign JavaScript Sample";
1行目は新規にドキュメントを作成するものです。これは先ほどやりました。InDesign CSでテキストを表示させるためには、まずテキストフレームを作成する必要があります。2行目でテキストフレームを作成しています。
テキストフレームを作成しても、その大きさを指定しないと期待通りにはなりません。そこでvisibleBoundsに上端、左端、下端、右端の座標を単位付きで指定します。順番を間違えないように注意してください。
次にフレームの種類を指定します。テキストフレームを作成したのに、なぜ?と思われるかもしれませんが、InDesign CSではテキストフレームもグラフィックのフレームも基本的に同じためです。ここでは明示的にテキストを入れます、と指定するためcontentTypeにContentType.textTypeとしてフレームの種類をテキストにしています。
これでテキストを表示する準備ができました。実際のテキストはcontentsに入れれば表示されます。ただし、日本語に関しては注意が必要です。日本語を表示させるためにはスクリプトのファイルの日本語の文字コードをUnicode (UCS-2)にする必要があります。UnicodeのUTF-8ではない事に注意が必要です。もちろん多く利用されているSHIFT JISコードでも駄目です。MacOS XではJEDITなどがUnicode (UCS-2)で保存することができます。
文字を表示しましたので、次に文字のサイズを変更してみましょう。以下のスクリプトは最初の1文字を34Qにするものです。
pageObj = app.documents.add()
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["1cm","0.5cm","5cm","10cm"];
txtObj.contentType = ContentType.textType;
txtObj.contents = "InDesign JavaScript Sample";
txtObj.characters[0].pointSize = "34Q";
先ほどのスクリプトに1行追加しただけです。追加したのは一番最後の行です。文字のサイズはpointSizeで指定します。どの文字のサイズを指定するかをcharactersで指定します。[]の中に数字がありますが、これが文字の位置になります。InDesign CSでの文字は一番最初の文字が0番、2文字目が1番というように1少ない値になっています。つまり最初の文字を指定するにはcharacters[0]とすればよい事になります。
文字のサイズは"34Q"のように文字列で指定します(数値でも指定可能)。級数だけでなくポイントでも指定できます。この場合には"24pt"のように指定します。
これでInDesign CSで文字を表示し、任意の位置の文字のサイズを変更することができるようになりました。同様にしてフォントなども変更することができます。