Можно ли в Photoshop автоматизировать замену текста и экспорт?

Добрый день!

Есть, 200 имен. Эти 200 имен надо вписать в подарочную карту и сохранить в JPEG. Структура макета 1в1 одна, меняется только текстовый слой.

Подскажите пожалуйста, есть ли плагин, который делал бы что-то подобное?
  • Вопрос задан
  • 878 просмотров
Пригласить эксперта
Ответы на вопрос 3
Francyz
@Francyz
Photographer & SysAdmin
Да, делается через запись макросов. Записываете действия, и после выполняете сколько нужно раз. Ищите в мануалах как работать с ними.
Ответ написан
@Froggyweb
Это работа не для фотошопа.
Возмите корел, иллюстратор или индизайн. Урак по переменным данным будет первым в поиске.
Пример иллюстратора https://www.youtube.com/watch?v=1yCXjZyy9a8
Ответ написан
Комментировать
@Redproxima
Студент технического ВВУЗ'а
Пользуйтесь! Достаточно мало-мальских понимания в программировании, чтобы понять, что и где менять. Более крутые приемы на подобие обводок текста, теней и прочей стилистики - это пока рано для вашего случая. Сохранить исходник в формате *.jsx, а запускать Файл -> Сценарии -> Обзор... Перед запуском создать пустой слой поверх фона и поставить выбор на него.
Скрипт хавает текстовик, где в каджой строке новое имя или фамилия или все вместе. Пробелы допустимы. Переснос строки энтером.

app.bringToFront();
var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.INCHES;
app.preferences.typeUnits = TypeUnits.POINTS;
var docRef = app.activeDocument;


var textColor = new SolidColor; //Цвета текста в RGB
textColor.rgb.red = 36;
textColor.rgb.green = 36;
textColor.rgb.blue = 36;


app.displayDialogs = DialogModes.NO;
var myFile = File('/e/1. Projects/Новый Год 2022/На конверты/Кому.txt');
if (myFile.exists == true){
myFile.open('r', undefined, undefined)
var line;
var index = 1;
while(!myFile.eof)
{
line = myFile.readln();
createText(line); // создание нового текстового слоя
var file_name = app.activeDocument.activeLayer.name; 
saveJPEG( app.activeDocument, new File('/e/1/'+index+"_"+file_name+".jpeg"), 12 ); //Путь и имя сохранения. По-умоланию берется строка из текстовика
var length = app.activeDocument.layers.length;
app.activeDocument.layers[0].visible = false;
app.activeDocument.layers[1].visible = false;
//app.activeDocument.activeLayer.visible = false;
index++;
}
myFile.close();
} else {
new File(myFile);
}
function createText(text){

var text_array = text.split("|");

var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.contents = text_array[0]+"";


newTextLayer.textItem.position = Array(8.30, 0.75); // расположение текста на изображении по X и Y. Придется поигарть в морской бой
newTextLayer.textItem.size = 24; // размер текста
newTextLayer.textItem.justification = Justification.RIGHT; //Якорная точка текстового слоя (Читай: выравнивание слева, справа и по центрe. Может быть RIGHT CENTER или LEFT 
newTextLayer.textItem.font = "PhillippScript"; // тип шрифта (семейство указывать не научился. Типа Regular или Italic)
newTextLayer.textItem.color = textColor; 
newTextLayer.textItem.fauxBold = false; //Жырный или нет true или false


}
function saveJPEG( doc, saveFile, qty ) {
     var saveOptions = new JPEGSaveOptions( );
     saveOptions.embedColorProfile = true;
     saveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
     saveOptions.matte = MatteType.NONE;
     saveOptions.quality = qty; 
     doc.saveAs( saveFile, saveOptions, true );
}

app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
docRef = null;
textColor = null;
newTextLayer = null;


Какая-то часть документации здесь. Остальное гуглится по запросу JS Photoshop Scripting
Для колдунства со стилями рекомендую (вам нужен ScriptingListener), придется почитать документацию, я проверял, работает как часы, но в рамках одного поста я инструкцию не опишу.
Удачи всем!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы