inDesign脚本“对象无效”

时间:2012-08-29 19:04:14

标签: javascript adobe-indesign

我正在尝试设置身高&单向表的第一行的插入,然后是所有后续行到另一组值的插入。

我在运行时收到JavaScript错误消息:

Error Number:45
Error String: Object is invalid

Engine: main
File: C:\...
Line: 49
Source: app.activeDocument.stories.everyItem().tables.everyItem().rows[x].height = ".12 in";

不确定从哪里开始? 这是我当前脚本http://pastebin.com/iUXgPZSM

的pastebin

1 个答案:

答案 0 :(得分:1)

everyItem()方法并不总是适用于所有上下文。在这种情况下,它不起作用,因为您正在设置属性,例如。 height = ".12 in"。首先使用getElements() 获取元素,然后遍历它们,它将起作用。

另请注意,您无法使行的高度小于文本大小。 InDesign就是不会这样做。在我提供的示例中,我使用了1 in,因为.12 in似乎小于默认文字大小。

最后,我看了一下你的pastebin脚本,你可以通过使用变量而不是函数链来清理它。它可能会占用更多的“垂直空间”,但最终它对其他人来说更具可读性。

var doc = app.activeDocument;

var everyStory = doc.stories.everyItem();
var everyTable = everyStory.tables.everyItem();
var allRows = everyTable.rows.everyItem().getElements();

for (var i=1, l=allRows.length; i < l; i++) {
   var row = allRows[i];
   row.height = "1 in";
};