Adobe Illustrator JavaScript - 循环将数据集应用于每个打开的文档
Adobe Illustrator JavaScript - Applying a dataset to each open document in a loop
我编写了一个简单的脚本来在 Adobe Illustrator 中打开两个文档(文件 -> 脚本)并对这些文档应用一些命令。
脚本的目的;如果没有在 Illustrator 中打开文档,脚本将:
- 打开所需文件。
- 将 XML 变量库加载到这些文档中。
- 显示该库中的数据集(只有一个数据集)。
- 将文件保存在指定位置。
- 关闭文件。
脚本:
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);
}
此代码仅适用于上次打开的文件 (file2.ai)。 file1.ai 从未被触及,几乎就像没有循环一样。
可能是什么原因造成的?
关闭循环中的第一个文件时,您刚刚将 app.documents[1]
移动到 app.documents[0]
你想要 top 向后循环
用
试试你的循环
for (var i = app.documents.length; i >0 ; i-- )
我编写了一个简单的脚本来在 Adobe Illustrator 中打开两个文档(文件 -> 脚本)并对这些文档应用一些命令。
脚本的目的;如果没有在 Illustrator 中打开文档,脚本将:
- 打开所需文件。
- 将 XML 变量库加载到这些文档中。
- 显示该库中的数据集(只有一个数据集)。
- 将文件保存在指定位置。
- 关闭文件。
脚本:
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);
}
此代码仅适用于上次打开的文件 (file2.ai)。 file1.ai 从未被触及,几乎就像没有循环一样。
可能是什么原因造成的?
关闭循环中的第一个文件时,您刚刚将 app.documents[1]
移动到 app.documents[0]
你想要 top 向后循环
用
试试你的循环for (var i = app.documents.length; i >0 ; i-- )