簡體   English   中英

如何使用腳本關閉 Illustrator 中所有打開的文檔?

[英]How can I close all open documents in illustrator with script?

我正在嘗試編寫一個腳本,該腳本可以關閉 illustrator 中所有打開的文檔,並提示我是否要保存它。 這必須使用腳本來完成,因為我的完整腳本是關於完成工作並關閉所有打開的文檔。 但無論我嘗試什么,它總是會給我一些錯誤。 誰能給我一個可能的解決方案?

這是我的代碼:

for(var i = 0; i < app.documents.length; i++ ){
    app.documents[i].activate();
    generateText(); //this is the function that needs to be execute first
    app.activeDocument.close(SaveOptions.PROMPTTOSAVECHANGES); //not work properly
    //app.executeMenuCommand("close"); //does not work either
    }

可能它對您有用(成功取決於 function generateText()的連接方式):

while (app.documents.length) {
  generateText();
  app.activeDocument.close();
}

只有當該文檔有一些未保存的更改時,它才會要求保存該文檔。

但是如果你出於某種原因想使用document.activate()方法,可能會有麻煩。 據我所知,Illustrator 會在您向后迭代集合時更改集合app.documents中已激活文檔的索引或類似的東西(從結尾到開頭,如果您想關閉文檔並更改,這是必要的分別收藏)。

所以這里有一個解決方法:

// create an array of documents instead of the native collection
var docs = [];
var i = app.documents.length;
while (i--) docs.push(app.documents[i]);

// iterate over the array
var i = docs.length;
while(i--) {
    docs[i].activate();
    generateText();
    docs[i].close();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM