読者です 読者をやめる 読者になる 読者になる

毛のはえたようなもの

インターネット的なものをつらつらとかきつらねる。

JavaScriptで画像を自動中央配置

さて、一応ファイルを作れるようになった私。長かった。
今度は「指定したフォルダ内にあるPDF形式に書き出した画像を一枚ずつ読み込んで、各ページの中央へと自動配置する」ことを考えました。
JavaScriptを使うといいらしい。ふむふむ。(InDesign CS2でのJSの使い方はこちら


以下のページのソースコードを改変して作りました。
フォルダ内にあるPDFを自動的に読み込み配置する

function layoutPDF(){
	folderObj = Folder.selectDialog("PDFのあるフォルダを選択してください");
	fileList = folderObj.getFiles("*.pdf");
	imageX = 0;
	imageY = 0;
	unit = "cm"
	//ページのサイズ
	pageWidth = app.activeDocument.documentPreferences.pageWidth/10;
	pageHeight = app.activeDocument.documentPreferences.pageHeight/10;

	//カレントドキュメントのページ枚数
	pageMax = app.activeDocument.pages.length;

	for (i=0; i<fileList.length; i++){
		//ページが足りなければ作成
		if(i>pageMax-1){
			app.activeDocument.pages.add();
			pageMax = app.activeDocument.pages.length;
		}

		pageObj = app.activeDocument.pages[i];

		//PDFの読み込み
		imgObj = pageObj.textFrames.add();
		imgObj.contentType = ContentType.graphicType;
		selFile = new File(fileList[i]);
		imgObj.place(selFile);
		imgObj.fit(FitOptions.frameToContent);

		//ページ中央に移動
		imageX = pageWidth/2-(-imgObj.geometricBounds[1] +imgObj.geometricBounds[3])/20;
		imageY = pageHeight/2-(-imgObj.geometricBounds[0] +imgObj.geometricBounds[2])/20;
		imgObj.move([imageX+unit,imageY+unit]);

	}
}
layoutPDF();

CS2での動作を確認しております。