InDesign CS6自動化作戦 (InDesign CS6 Automation Operation)

■文字を表示する

 それでは次にInDesign CS6で文字を表示してみましょう。以下のプログラムを入力してみてください。

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 CS6でテキストを表示させるためには、まずテキストフレームを作成する必要があります。2行目でテキストフレームを作成しています。
 テキストフレームを作成しても、その大きさを指定しないと期待通りにはなりません。そこでvisibleBoundsに上端、左端、下端、右端の座標を単位付きで指定します。順番を間違えないように注意してください。
 次にフレームの種類を指定します。テキストフレームを作成したのに、なぜ?と思われるかもしれませんが、InDesign CS6ではテキストフレームもグラフィックのフレームも基本的に同じためです。ここでは明示的にテキストを入れます、と指定するためcontentTypeにContentType.textTypeとしてフレームの種類をテキストにしています。
 これでテキストを表示する準備ができました。実際のテキストはcontentsに入れれば表示されます。

 文字を表示しましたので、次に文字のサイズを変更してみましょう。以下のスクリプトは最初の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 CS6での文字は一番最初の文字が0番、2文字目が1番というように1少ない値になっています。つまり最初の文字を指定するにはcharacters[0]とすればよい事になります。
 文字のサイズは"34Q"のように文字列で指定します(数値でも指定可能)。級数だけでなくポイントでも指定できます。この場合には"24pt"のように指定します。

 これでInDesign CS6で文字を表示し、任意の位置の文字のサイズを変更することができるようになりました。同様にしてフォントなども変更することができます。


写真素材 PIXTA