2012-07-19 162 views
1

编写InDesign脚本时,我创建了一个隐藏的新文档,直到执行所有动作,然后使用myDocument.windows.add();让它展现。然而,我还有很多在最后一步之前出现错误的实例,所以文档没有实现。我能够让他们关闭的唯一方法是完全关闭InDesign;尽管这有效,但我认为必须有更好的方法。如何关闭隐藏的InDesign文档?

有没有一种方法,无论是在IDE或脚本,看看什么是打开和/或关闭所有隐藏的进程?

干杯,布伦丹

回答

3

当然!

app.documents.everyItem()。close(SaveOptions.NO); //将关闭任何可见或不可见的文档而不保存它们)。

如果您想使用不可见文档,使用try catch语句总是一个好主意。所以如果有错误,你可以放弃它们。

function dealWithInvisibleDocs() 
{ 
    var doc; 

    try 
    { 
     doc = app.documents.add(); 
     throw new Error ("Booom"); 
    } 
    catch(e) 
    { 
     alert(e); 
     if (doc.isValid) 
     { 
      doc.close (SaveOptions.NO); 
     } 
    } 
} 
dealWithInvisibleDocs(); 

卢瓦克

+0

好东西;感谢分享。我只是制作了一个单行的脚本,我可以在需要时调用!如果我要做try/catch,那么try部分几乎必须包含整个脚本,对吧?而且,由于我对错误处理还很陌生,为什么在关闭之前进行isValid检查?我知道这是从原来的问题脱离主题,但我想知道:) – Brendan 2012-07-19 15:39:32

+0

是的,使用try catch需要你封装脚本。另一种方法是在文档中运行循环,看看是否有layoutWindow。 isValid用于检查文档是否存在,但我认为最好添加一个instanceof检查: if(doc instanceof Document && doc.isValid)... Loic – Loic 2012-07-20 09:07:36

+0

哎呀!从未承认此评论...感谢您的回复! – Brendan 2012-08-07 18:32:30