【发布时间】:2016-02-04 11:16:17
【问题描述】:
通过代码,我正在尝试将符号库从参考 Illustrator 文件加载到另一个文件。 我想做与在 UI 中单击“其他库”时相同的加载,然后您必须选择一个 Ai 文件以获取其所有符号。
有人知道怎么做吗?有没有简单的方法或者我应该一个接一个地复制符号?
我尝试加载另一个文档,然后将每个符号复制到第一个文档:
var loadSymbolLibrary = function(fromAiFile) {
var thisDocument = activeDocument;
app.open(fromAiFile);
var fromAiDocument = activeDocument;
var symbols = fromAiDocument.symbols;
for(var i = 0; i < symbols.length; i++) {
var symbol = symbols[i];
thisDocument.symbols.add(symbol);
}
fromAiDocument.close();
activeDocument = thisDocument;
}
但在第一个文档中添加符号时出现错误。
根据 Adobe 文档,我需要一个 PageItem 和一个 SymbolRegistrationPoint 来使用 add() 函数创建符号。
[编辑]
我也试过用这种方式加载包含符号的文档:
var openOptions = new OpenOptions();
openOptions.openAs = LibraryType.SYMBOLS;
var symbolDocument = app.open(symbolAiFile, null, openOptions);
这会在 Illustrator 中打开一个符号窗口,但我不知道如何通过代码处理它,因为调用 symbolDocument.symbols 会产生“文档不再打开”错误。
【问题讨论】:
标签: javascript adobe-illustrator extendscript