是否可以在 Adob​​e Illustrator 中复制文本范围(由脚本选择)?

Is it possible to copy a text range (selected by script) in Adobe Illustrator?

我尝试在我编写的脚本中,select 用户 select 编辑的文本框架中的文本范围,并将文本范围的 selection 复制到剪贴板:

var userSelection = activeDocument.selection;
userSelection[0].textRange.lines[0].select();
app.copy();

当我运行上面的代码时,弹出如下错误信息:

并且当我确认错误消息并停止脚本操作和 return 到 Illustrator 时,似乎脚本 select 编辑了文本范围而没有进入文本编辑模式:

当我按下 Cmd+C(在 mac 上)或 Cmd+X,同样弹出上面的错误信息

所以我意识到,如果不进入文本编辑模式,您可能无法复制文本范围。

是否有进入文本编辑模式从而复制文本范围的方法,或者是否有其他复制文本范围的方法?

可以使用线条对象的 duplicate() 方法将文本从一个文本框架移动到另一个文本框架且其所有字符属性完好无损,以将线条复制到目标文本框架中。请参阅这个小示例片段:

var doc = app.activeDocument;
var sourceFrame = doc.textFrames.getByName("source");
var targetFrame = doc.textFrames.getByName("target");

var line = sourceFrame.textRange.lines[0];

line.duplicate(targetFrame);