У меня есть два текстовых поля, в которых мне нужен одинаковый текст, но с разными шрифтами. Есть ли способ, которым я могу одновременно редактировать только текстовое содержимое обоих (сохраняя разные шрифты).
Вы можете динамически загружать текст в Illustrator с помощью XML-файла.
Используя панель «Переменные», вы можете импортировать XML-файл и использовать его для управления существованием объектов, изображениями, отображаемыми в связанных контейнерах изображений, и текстом, отображаемым в текстовом фрейме. Вы также можете управлять данными, отображаемыми на графике. Типичный рабочий процесс заключается в создании шаблона документа, а затем в теге для переменных.
В Интернете есть несколько руководств, в которых обсуждается, как это сделать. В этой статье: КАК ИСПОЛЬЗОВАТЬ ПЕРЕМЕННЫЕ ДАННЫЕ ADOBE ILLUSTRATOR С XML, есть хорошее видео и пошаговое руководство о том, как это сделать.
Или вы можете сделать одно из следующих действий:
1) Удалите второе текстовое поле. Измените текст. Скопируйте -> вставьте текст и примените стиль шрифта или символа.
или же
2) Просто скопируйте текст и вставьте в другое текстовое поле после завершения редактирования первого текстового поля.
Вы можете использовать этот короткий фрагмент скрипта:
#target illustrator
function ChangeTextContents(){
if(app.documents.length > 0 && app.documents[0].selection != null){
var newText = prompt("Enter new text:", "");
if(newText != null){
var sel = app.activeDocument.selection;
for(var i=0; i<sel.length; i++){
var s = sel[i];
if(s.typename == "TextFrame"){
s.contents = newText;
}
};
}
}
}
ChangeTextContents();
Он просто поместит ваш вводимый текст в текстовые фреймы, которые вам понадобятся при выделении.
Вот модификация, которая позволяет вам выбирать группы и изменяет текст внутри этих групп. Это работает на вложенных уровнях (группах внутри групп) или непосредственно на выбранных текстовых слоях.
#target illustrator
function ChangeTextContents(){
if(app.documents.length > 0 && app.documents[0].selection != null){
var newText = prompt("Enter new text:", "");
if(newText != null){
var sel = app.activeDocument.selection;
for(var i=0; i < sel.length; i++){
ChangeElement(sel[i],newText);
}
}
}
}
function ChangeElement(thisSelection,text) {
// For each selected item, determine if it is text or a group
// For text items, just change the contents
if(thisSelection.typename == "TextFrame"){
thisSelection.contents = text;
// For group items, iterate through each group item and recursive call this function.
} else if (thisSelection.typename == "GroupItem") {
// Change the text items within this level of the group
for(var k=0; k < thisSelection.textFrames.length; k++){
ChangeElement(thisSelection.textFrames[k],text);
}
// Now recursively process the group items within this group
for(var j=0; j < thisSelection.groupItems.length; j++){
ChangeElement(thisSelection.groupItems[j],text);
}
}
}
ChangeTextContents();
Виктор