使图形框架适合InDesign中的内容



我正在尝试为InDesign创建一个脚本,强制所有图形框架(矩形(适应内容。我在XML导入中使用了这一点,一些图形(尤其是在表格中(的框架比图形小。我们不希望裁剪图形,也不希望将其缩放到更小的大小,所以我们希望运行一个脚本,找到所有图形对象,然后强制框架与图形相适应。我找到了下面的字符串,应该工作,但我无法让它为我工作。

app.activeDocument.rectangles.everyItem().fit(FitOptions.FRAME_TO_CONTENT);

我用这段代码创建了一个非常简单的函数,但它实际上什么都没做。我确信我遗漏了一些显而易见的东西,但我的JavaScript经验非常有限。这是我的简单功能:

function fitToFrame(){
app.activeDocument.rectangles.everyItem().fit(FitOptions.FRAME_TO_CONTENT);
}

我也试着把它当作一个数组,但这也没有任何作用。

function fitToFrame(){
var doc=app.activeDocument;
app.findObjectPreferences = null;
var obj = new Array(doc.rectangles.everyItem());
for (var i=0; i<obj.length; i++){
obj[i].fit(FitOptions.FRAME_TO_CONTENT);
}
}

我尝试了一种不同的方法来寻找和识别物体,但这仍然不起作用,我陷入了困境。

function fitToFrame(){
var doc=app.activeDocument;
app.findObjectPreferences = null;
var obj = doc.findObject();
for (var i=0; i<obj.length; i++){
if (obj[i] instanceof Rectangle){
obj[i].fit(FitOptions.FRAME_TO_CONTENT);
}
}
}

我错过了什么?我很感激你的建议!

UPDATE我确实发现,当我运行上面列出的最后一个函数时,发生了一些的事情,因为它将UI中的Undo菜单更改为";撤消设置框架装配选项;但文档中没有任何实际更改,所以我仍然被卡住了。

首先,矩形对象的fit方法很有效,我用了很多。问题在于引用你的矩形,它一定是代码中我们看不到的东西。尝试将其作为单独的脚本运行:

var obj = app.activeDocument.rectangles;

for (var i=0; i<obj.length; i++){
obj[i].fit(FitOptions.FRAME_TO_CONTENT);
}

最新更新