フォルダ内のJPEG画像をまとめて配置する (Illustrator CS3/CS4編)

今回はフォルダ内のJPEG画像をまとめて配置するスクリプトです。似たようなネタは数年前にもやりましたが、Illustrator CS3/CS4では画像を配置する命令が以前のバージョンとは多少異なっているため、そのままでは動作しません。仕様変更によりrasterItem部分でエラーになるような場合はplacedItemに名前を置き換えると動作することがあります。
以下のスクリプトは配置したい画像があるフォルダを選択するとページ全体に画像がまとめて配置されるものです。

function multiImageRotate(){
var folderObj = Folder.selectDialog("フォルダを選択してください");
var fileList = folderObj.getFiles("*.jpg");
var w = 80; // 横幅
var h = 60; // 縦幅
var startX = 0;
var x = 0;
var y = h;
var dx = 10; // 横の間隔
var dy = 5; // 縦の間隔
var limitX = activeDocument.width; // ページの横幅
var limitY = activeDocument.height; // ページの縦幅
for (var i=0; i<fileList.length; i++){
pItem = activeDocument.placedItems.add();
fileRef = fileList[i];
pItem.file = fileRef;
pItem.position = [x,y];
pItem.width = w; // 原寸大にしたい場合は、この行を削除
pItem.height = h; // 原寸大にしたい場合は、この行を削除
var d = Math.random() * 45;
pItem.rotate(d);
x = x + w + dx;
if (x > limitX){
x = startX;
y = y + h + dy;
if (y > limitY) break; // ページ上限を超えたら終了
}
}
}
multiImageRotate();

このスクリプトではランダムに画像が回転しますが、画像を回転させたくない場合は以下の1行を削除してください。

pItem.rotate(d);

特定の角度、例えば45度で回転させて配置したい場合には以下のように指定します。

pItem.rotate(45);

また、JPEG画像を原寸大で配置したい場合には以下の2行を削除してください。

pItem.width = w;
pItem.height = h;

[サンプルをダウンロード]