Fri, February 22, 2008
はじめてのInDesign CS3 JavaScript 段落スタイルの作成と設定(テキストフレーム)
InDesignで組版するなら、当然見た目への配慮が必要でしょう。 今回は段落スタイルのJavaScriptからの設定をやってみます。
方針
段落スタイルとして保持できる...フォントをはじめ行間その他いろいろな設定... をすべてScript側でコントロールすることも可能でしょうけれど、 まずは、段落スタイル名だけを作成し、テキストフレームに適用します。 あとは、InDesign上で、細かい段落設定は手作業で行う、ということに します。
前回作成した、 お約束の"HelloWorld"に 段落スタイルを追加する例です。
スクリプト
// 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をリストの一覧から選んでダブルクリックで実行。