2

我正在尝试以一种方式为表格的第一行设置高度和插图,然后将所有后续行设置为另一组值。

我在运行它时收到一条 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

4

1 回答 1

2

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";
};
于 2012-08-31T13:52:36.990 回答