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

■画像を表示する

 それでは次にInDesign CS3で画像を表示してみましょう(MacOS Xの場合で説明しています)。まず、ハードディスクの名前(ボリューム名)を確認してください。ここではMacintosh HDというハードディスクの名前にしています。このハードディスク内にimgフォルダを作成し、その中に0001.jpgという名前のJPEG画像を入れておいてください。
 準備ができたら以下のプログラムを入力し実行してみてください。

pageObj = app.documents.add();
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["1cm","1cm","4cm","4cm"];
txtObj.contentType = ContentType.graphicType;
txtObj.place("Macintosh HD:img:0001.jpg");

 自動的に新規にドキュメントが作成され0001.jpg画像が表示されます。もし、ハードディスクの名前がMacHDであれば一番最後の行を以下のように修正します。

txtObj.place("MacHD:img:0001.jpg");

 ボリューム名に日本語を使っている場合には問題が発生する可能性かもしれません(InDesign CSと違い濁点などが含まれていても動作しますが、100%問題がでないとは言い切れません)。
 ボリューム名とフォルダ名は:(コロン)で区切って指定します。MacOS Xでは:がフォルダの区切り記号になっています。このように指定することで任意の場所にある画像をドキュメント上に貼付けることができます。

 画像は貼付けることができましたが、フレームと画像のサイズが一致していないため不自然です。そこでフレームを画像のサイズに合わせるようにしましょう。これは以下のスクリプトになります。

pageObj = app.documents.add();
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["1cm","1cm","4cm","4cm"];
txtObj.contentType = ContentType.graphicType;
txtObj.place("Macintosh HD:img:0001.jpg");
txtObj.fit(FitOptions.frameToContent);

 追加されたのは一番最後の行です。fit()によって、どのようにフレームを合わせるかを指定します。もちろんフレームに画像を合わせることもできます。fit()は以下の指定が可能です。

内容を中央に合わせる   FitOptions.centerContent
フレームを内容に合わせる FitOptions.frameToContent
内容をフレーム内に収める FitOptions.proportionally
内容をフレームに合わせる FitOptions.contentToFrame

 これで画像を配置することができるようになりました。文字と画像を自由に配置、設定できれば自動化への第一歩です。あとは、必要に応じて必要なパラメータなどを設定していけばよいでしょう。


写真素材 PIXTA