Adobe Illustrator JavaScript-将数据集应用于循环中的每个打开文档
我编写了一个简单的脚本,可以在Adobe Illustrator中打开两个文档(文件->脚本),并对这些文档应用一些命令 剧本的目的;Illustrator中未打开任何文档,脚本将:Adobe Illustrator JavaScript-将数据集应用于循环中的每个打开文档,javascript,scripting,adobe,adobe-illustrator,Javascript,Scripting,Adobe,Adobe Illustrator,我编写了一个简单的脚本,可以在Adobe Illustrator中打开两个文档(文件->脚本),并对这些文档应用一些命令 剧本的目的;Illustrator中未打开任何文档,脚本将: 打开所需的文档 将XML变量库加载到这些文档中 显示该库中的数据集(只有一个数据集) 将文件保存在给定位置 关闭文件 剧本: try { var doc_1 = open(File("C:/file1.ai")); var doc_2 = open(File("C:/file2.ai"));
try
{
var doc_1 = open(File("C:/file1.ai"));
var doc_2 = open(File("C:/file2.ai"));
var sourceDoc;
var targetFile;
var options = new IllustratorSaveOptions();
for (var i = 0; i < app.documents.length; i++ )
{
sourceDoc = app.documents[i];
sourceDoc.importVariables(new File("C:/variables.xml"));
sourceDoc.dataSets[0].display();
targetFile = new File("C:/output" + sourceDoc.name + '.ai');
sourceDoc.saveAs( targetFile, options );
sourceDoc.close();
}
}
catch(err)
{
alert(err);
}
试试看
{
var doc_1=打开(文件(“C:/file1.ai”);
var doc_2=打开(文件(“C:/file2.ai”);
var-sourceDoc;
var目标文件;
var options=新IllustratorSaveOptions();
对于(var i=0;i
此代码仅适用于上次打开的文件(file2.ai)。file1.ai从未被触摸过,几乎就像没有循环一样
什么原因可能导致这种情况?关闭循环中的第一个文件时,您刚刚将
app.documents[1]
移动到app.documents[0]
你想让他们倒转
试试你的循环
for (var i = app.documents.length; i >0 ; i-- )
这就是答案。我在循环中逐个保存文件时也注意到了同样的行为。您必须以相反的顺序保存它们。