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での動作を確認しております。