InDesign MY-NOTEBOOK

Sunday, April 4, 2010

InDesign CS3/CS4 , 一つのテキストフレームに複数の段落を配置し、最初の段落にスタイルを適用する

新規ドキュメントを作成し、テキストフレームを作成し、
段落を2つ作成して、最初の段落だけにスタイルを設定するデモ。

para.jsx

//
// InDesign ExtendScript 
// 段落スタイルを新規作成して適用する.
//


// 1) ドキュメント作成
var myDoc=app.documents.add();
var myPage=myDoc.pages.item(0);


// 2) テキストフレームを作成して内容を配置
var tf=createTextFrame(myDoc,myPage);
tf.contents = "吾輩(わがはい)は猫である。\r名前はまだ無い。";


// 3) 最初の段落のみスタイルを作成しそれを適用
var myStyle = myDoc.paragraphStyles.add({name:"myStyle"});
myStyle.pointSize = "14pt";
tf.paragraphs[0].applyParagraphStyle(myStyle, true);


// 4) 確認
alert( tf.paragraphs[0].contents )
alert( tf.paragraphs[1].contents )



// 便利メソッド

function createTextFrame(myDoc,myPage){
	var myTextFrame=myPage.textFrames.add();
	var myBounds = myGetBounds(myDoc,myPage);
	myTextFrame.geometricBounds=myBounds;

	return myTextFrame;
}

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];
}


補足

段落スタイルについては、スクリプトで定義しないで、
テンプレートとなる indd ファイルを作成し、そこに定義しておいた方が管理しやすい。