Index > はじめてのInDesign CS3 JavaScript, カラー(スウォッチ)の作成と利用および基本図形の追加
Thu, February 21, 2008

はじめてのInDesign CS3 JavaScript, カラー(スウォッチ)の作成と利用および基本図形の追加

InDesignでは、単に文字やイラスト・イメージの配置だけでなく、 四角形や多角形・楕円などを直接配置できます。 これをJavaScriptから操作するにはどうすればいいのか? また、それらの図形オブジェクトの色はどうやって指定するのか?

基本図形の追加

基本図形は、JavaScriptでは、Rectangle,Polygon,Oval オブジェクトに該当しているようです。 これらは、以下のように、Page インスタンスに対して追加できます。
追加したあと、位置の指定、色の指定などをしていけばOK。

var myDoc=app.documents.add();
var myPage=myDoc.pages.item(0);
var rect=myPage.rectangles.add();
rect.strokeWeight=1;
rect.geometricBounds=[72,72,172,172];

単位の指定

geometricBoundsで指定している四隅の座標位置ですが、 このままでは、単位がわかりません。
単位の指定は以下のように、ドキュメントのViewPreferenceで指定します。

var myDoc=app.documents.add();
myDoc.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
myDoc.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;

色の作成

四角形は作成できたので、適切に色を指定して塗りたい。 どうすればいいか。

var color=myDocument.colors.item("Black");

とすると、黒色を扱えるのだが、

var color=myDocument.colors.item("Red");

としてみると、エラーになる。

Black についてはあらかじめ登録されているようだ。
しかし、好きな色を自分で指定して使うにはどうすればいいのだろう?

InDesignでは、Swatch(スウォッチ)という概念で色やグラデーションを 扱えるようになっている。 あらかじめ登録しておいたスウォッチ名でその色やグラデーションに アクセスする。以下のように...

var mySwatch=myDocument.swatches.item("MySwatchName");

もちろん、いきなりこれを使っても、MySwatchName というスウォッチが 作成されていないので、エラーになる。 Script中で使う場合は、以下のような手順で、事前に登録しておく。

var MYCOLORNAME="MySwatchName";

var myColor=myDocument.colors.add();
myColor.name=MYCOLORNAME;
myColor.model=ColorModel.process;
myColor.colorValue=[0,100,0,50];//CMYK

色はRGBで指定したいところだが、CMYKで指定する方法しか わからなかった。(たぶんRGBで指定する方法があるとは思うが)

さらに、もし同じスウォッチ名が登録ずみだった場合に備えて、 以下のようなコードを使って色オブジェクトを生成するのが、 良いようです。(Adobe提供のサンプルスクリプトを見るとわかります。)

var MYCOLORNAME="MySwatchName";

var myColor=null;
try{
    myColor = myDocument.colors.item(MYCOLORNAME);
    myColor.name;// it is a point ,if myColor were null, error occurred. 
}
catch(myError){
    myColor=myDocument.colors.add();
}

if(myColor!=null){
    myColor.name=MYCOLORNAME;
    myColor.model=ColorModel.process;
    myColor.colorValue=[0,100,0,50];//CMYK
}
else{
    alert("something is wrong.");
}

色を作成して、四角形図形を追加するサンプルスクリプト

以上をまとめると以下のようになる。

結果はこちら(pdf)

myCreateColor.jsx

// create color sample

var MYCOLORNAME="myColor";

var myDoc=app.documents.add();
myDoc.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
myDoc.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;

createMyColor();

var myPage=myDoc.pages.item(0);
var rect=myPage.rectangles.add();
rect.strokeWeight=1;
rect.geometricBounds=[72,72,172,172];
rect.fillColor=MYCOLORNAME;


function createMyColor(){
    var myColor=myDoc.colors.add();
    myColor.name=MYCOLORNAME;
    myColor.model=ColorModel.process;
    myColor.colorValue=[0,100,0,50];//CMYK
    //myColor.properties={name:myColorName, model:myColorModel, colorValue:myColorValue};
}

使い方

InDesign CS3をインストールしたフォルダ以下に、配置します。

./Adobe InDesign CS3/Scripts/Scripts Panel/myCreateColor.jsx

あとは、InDesignCS3を起動して、 メニューから[ウインドウ→自動化→スクリプト]でスクリプトウインドウが出てきて、 myCreateColor.jsxをリストの一覧から選んでダブルクリックで実行。

 Twitter
follow me on Twitter
 Categories