[英]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.