InDesign CS6自動化作戦の「画像をテキストフレームに自動的に読み込ませる」を参考にしました。
グループがあるとエラーが出ます。
再帰処理?はどのように書けばいいのでしょう。
var doc=app.activeDocument;
var actDocFolder = Folder(doc.filePath);
for(var i=0; i<doc.allGraphics.length; i++)
{
var imageObj=doc.allGraphics[i];
imageObj.parent.locked=true;//配置済み画像をロック、グループだとエラー
}
function setImage()
{
for (var i=0; i<doc.textFrames.length; i++)
{
var pname = doc.textFrames[i].contents;
if(pname.indexOf(".eps") > -1&&File(actDocFolder+ "/" + pname).exists)
{
doc.textFrames[i].place(File(actDocFolder+ "/" + pname));
}
}
}
setImage();
setImage();
setImage();//グループだと配置されない
for(var i=0; i<doc.allGraphics.length; i++)
{
var imageObj=doc.allGraphics[i];
if(imageObj.parent.locked)continue;
imageObj.fit(FitOptions.FILL_PROPORTIONALLY);
}
for(var i=0; i<doc.allGraphics.length; i++)
{
var imageObj=doc.allGraphics[i];
imageObj.parent.locked=false;
}
[18928] k (2016/10/30 Sun 13:37)
InDesignでグループ内アイテムはスクリプトからかどうかにかかわらずロックできない仕様になってるようですよ。この場合ならロック使わなくても、たとえばplace()の戻り値を使うなどで解決できると思います
[18930] たう (2016/10/31 Mon 12:20)
> InDesignでグループ内アイテムはスクリプトからかどうかにかかわらずロックできない仕様になってるようですよ。この場合ならロック使わなくても、たとえばplace()の戻り値を使うなどで解決できると思います
回答ありがとうございます。return 戻り値調べます。
[18932] k (2016/10/31 Mon 21:48)