2016-01-21 46 views
0

我正在尝试使用javascript更新Illustrator文件。我有一个脚本,将以所需的方式修改打开的文件(实际上只是文本查找/替换,但文本是在Illustrator数据中编码的)。问题是我有数百个这样的文件,我想在目录中以相同的方式进行修改。有没有办法让我做到这一点,而不必打开这些文件中的每一个?如何在目录中的所有文件上运行Illustrator JavaScript?

我想要: 1.有一种方法可以修改现有的javascript以从目录中读取并在后台加载文件,处理它们,保存并关闭。 2.我可以编写一个Node.js脚本来包装现有的Illustrator JavaScript,但我不知道如何让它识别“应用程序”对象,并以与在Illustrator中打开时相同的方式读取该文件。

感谢您的帮助!

编辑:这里的功能脚本(只有

function FindAndReplaceScript_AllOpenDocuments(){  
     for(var i=app.documents.length -1; i > -1; i--){  
     app.documents[i].activate(); 
     var aDoc = app.documents[i]; 

     var searchString = /OLDTEXT/gi;  
     var replaceString = 'NEWTEXT';  

     var theTF = aDoc.textFrames;  
     if (theTF.length > 0) {  
      for (var j = 0 ; j <theTF.length; j++) {  
       var aTF = theTF[j];  
       var newString = aTF.contents.replace(searchString, replaceString);  
       if (newString != aTF.contents) {  
        theTF[j].contents = newString;  
       }  
      }  
     } 
    } 
};  
FindAndReplaceScript_AllOpenDocuments(); 
} 

回答

1

是的,有一种方法从目录中读取:

var dir = Folder.selectDialog("Where?"); 
var files = dir.getFiles("*.eps"); 

for(var f = 0; f < files.length; f++){ 
    var doc = app.open(files[f]); 
    //Your processing 
    doc.close(SaveOptions.SAVECHANGES); 
} 
相关问题