Javascript inDesign scripting";“对象无效”;
我试图以一种方式设置表的第一行的高度和插入,然后将后面的所有行设置为另一组值 运行时,我收到一条JavaScript错误消息:Javascript inDesign scripting";“对象无效”;,javascript,adobe-indesign,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"; 不知道从这里到哪
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";
不知道从这里到哪里去?
下面是我当前脚本的粘贴箱,everyItem()
方法并不总是适用于所有上下文。在本例中,它不起作用,因为您正在设置一个属性,例如height=“.12 In”
。如果您首先使用getElements()
获取元素,然后循环遍历它们,那么它将起作用
另外,请注意,不能使行的高度小于文本大小。InDesign就是做不到。在我提供的示例中,我在中使用了1,因为
中的.12似乎小于默认文本大小
最后,我看了一下您的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";
};
var doc=app.activeDocument;
var everyStory=doc.stories.everyItem();
var everyTable=everyStory.tables.everyItem();
var allRows=everyTable.rows.everyItem().getElements();
对于(变量i=1,l=allRows.length;i