Index > はじめてのInDesign CS3 JavaScript 段落スタイルの作成と設定(テキストフレーム)
Fri, February 22, 2008

はじめてのInDesign CS3 JavaScript 段落スタイルの作成と設定(テキストフレーム)

InDesignで組版するなら、当然見た目への配慮が必要でしょう。 今回は段落スタイルのJavaScriptからの設定をやってみます。

方針

段落スタイルとして保持できる...フォントをはじめ行間その他いろいろな設定... をすべてScript側でコントロールすることも可能でしょうけれど、 まずは、段落スタイル名だけを作成し、テキストフレームに適用します。 あとは、InDesign上で、細かい段落設定は手作業で行う、ということに します。

前回作成した、 お約束の"HelloWorld"に 段落スタイルを追加する例です。

スクリプト

myParagraphStyle.jsx

// my hello world and style

init();

function init(){
    var myDoc=app.documents.add();
    var myPage=myDoc.pages.item(0);
    var myTextFrame=myPage.textFrames.add();

    var myBounds = myGetBounds(myDoc,myPage);
    myTextFrame.geometricBounds=myBounds;
    myTextFrame.contents="Hello World!";

    // create style
    var myPStyle=null;
    try{
        myPStyle=myDoc.paragraphStyles.item("style1");
        myPStyle.name;
    }
    catch(myError){
        myPStyle = myDoc.paragraphStyles.add({name:"style1"});
    }
    myTextFrame.texts.item(0).applyParagraphStyle(myPStyle, true);

}

function myGetBounds(myDoc, myPage){
    with(myDoc.documentPreferences){
        var myPageHeight = pageHeight;
        var myPageWidth = pageWidth;
    }
    with(myPage.marginPreferences){
        var myTop = top;
        var myLeft = left;
        var myRight = right;
        var myBottom = bottom;
    }
    myRight = myPageWidth - myRight;
    myBottom = myPageHeight- myBottom;
    return [myTop, myLeft, myBottom, myRight];
}

ポイントは、以下の部分で、 style1 というスタイル名を作成しています。 念のため既に同名のスタイル名が存在していないか確認し、 存在しない場合は作成するようにしています。

    // create style
    var myPStyle=null;
    try{
        myPStyle=myDoc.paragraphStyles.item("style1");
        myPStyle.name;
    }
    catch(myError){
        myPStyle = myDoc.paragraphStyles.add({name:"style1"});
    }
    myTextFrame.texts.item(0).applyParagraphStyle(myPStyle, true);

使い方

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

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

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

 Twitter
follow me on Twitter
 Categories