JavaScriptで、アートボードに配置したアイテムの間隔を指定したい
お世話になります。
今、Illustratorへ複数ページのPDFの配置を行なっています。
ページ毎に異なるアートボードへ配置し(1ページ目はアートボード1、2ページ目はアートボード2と固定です)、間隔を調整したい(アートボード1と2で異なる数字ではない)のですが、どうしても同じ位置にしか配置してくれません。
ネットで検索したり、ChatGTPを頼ったり色々しているのですが、うまくいきません。
どうしたら、位置が動いてくれるのでしょうか?
どなたかご教授くださいませ。
// 複数のPDFファイルを選択
var fileObjs = File.openDialog("PDFを選択してください", "*.pdf", true);
var pdfOptions = app.preferences.PDFFileOptions;
pdfOptions.pDFCropToBox = PDFBoxType.PDFMEDIABOX;
var pt = 2.83465;
var pageW = 91 * pt; // ページの幅
var pageH = 55 * pt; // ページの高さ
var xmargin = 10 * pt; // ページ間のマージン
var ymargin = 3 * pt; // ページ間のマージン
var spreadcount = 2; // 何ページごとに改行するか
if(fileObjs) {
for (var f = 0; f < fileObjs.length; f++) {
var fileObj = fileObjs[f];
var pdfPages = 2; // PDFのページ数
for(var p = 0; p < pdfPages; p++){
// アートボードを選択(pをインデックスとして使用)
var artboardIndex = p; // PDFの1ページ目をアートボード1に、2ページ目をアートボード2に
if(artboardIndex < app.activeDocument.artboards.length) {
var artboard = app.activeDocument.artboards[artboardIndex];
var artboardRect = artboard.artboardRect; // アートボードの左上隅を基準に配置
var startX = artboardRect[0]+ 5.996 * pt; // 開始X座標をアートボードに合わせて調整
var startY = artboardRect[1] - 1.996 * pt; // 開始Y座標をアートボードに合わせて調整
var myX1 = startX; // 現在のX座標
var myY1 = startY; // 現在のY座標
pdfOptions.pageToOpen = p + 1; // PDFのページを開く
var myImage = app.activeDocument.placedItems.add();
myImage.file = fileObj;
myImage.left = myX1; // X座標をアートボードに合わせて設定
myImage.top = myY1; // Y座標をアートボードの上辺に合わせて設定
myX1 += pageW + xmargin; // X座標を更新
if(((p + 1) % spreadcount == 0) || (p == pdfPages - 1)){
myX1 = startX; // X座標を初期位置にリセット
myY1 -= pageH + ymargin; // Y座標を更新(下に移動)
}
}
}
}
pdfOptions.pageToOpen = 1; // 最後に設定をデフォルトに戻す
} else {
alert("ファイルが選択されませんでした。");
}
作業環境
MacOS10.14.6
Illustrator2020
