我尝试使用javascript来更新Illustrator文件。我有一个脚本,将以所需的方式修改打开的文件(实际上只是文本查找/替换,但文本在Illustrator数据中编码)。问题是我有数百个这样的文件,我想在目录中以相同的方式修改。有没有办法让我这样做而无需打开这些文件中的每一个?
我想: 1.有一种方法可以修改现有的javascript以从目录中读取并在后台加载文件,处理它们,保存和关闭。 2.我可以编写一个可以包装现有Illustrator javascript的Node.js脚本,但我不确定如何让它识别"应用程序"对象并以与在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();
}
答案 0 :(得分:2)
是的,有一种方法可以从目录中读取:
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);
}