Я пытаюсь разместить один текст из массива за другим в PSD, используя сценарий Photoshop. Проблема в том, что это может быть не очевидным, если первый текст вписывается в одну строку или нет, потому что я должен разместить второй текст сразу после N пикселей после первого. И если в названии будет 2 строки, я ввернусь.сценарий для фотошоп разместить один текст за другим
Есть ли шанс получить динамическую высоту абзаца или подсчитать строки в абзаце? Или как я могу решить эту проблему?
Вот мой код:
function createTexts() {
createText(250, 100, 110, titles[count_psd-1], 1);
createText(200, 50, 250, descriptions[count_psd-1], 0);
saveImage();
}
function createText(h, fontSize, hPosition, content, light) {
var doc = app.activeDocument;
var TextLayer = doc.artLayers.add();
TextLayer.kind = LayerKind.TEXT;
var txtRef = TextLayer.textItem;
txtRef.kind = TextType.PARAGRAPHTEXT;
txtRef.antiAliasMethod = AntiAlias.SMOOTH;
txtRef.width = 1050;
txtRef.height = h;
if (lang==0) {
if (light==1){
txtRef.font = "HelveticaNeue-UltraLight";
} else {
txtRef.font = "HelveticaNeue";
}
} else {
txtRef.font = "MicrosoftSansSerif";
}
txtRef.contents = content;
txtRef.size = fontSize;
var textPosition = [75,hPosition];
txtRef.position = textPosition;
}
Спасибо!
Я ничего не знаю о сценарии photoshop, но если бы я делал это, первой идеей я бы попытался не вручную установить высоту с помощью 'txtRef.height = h;' и посмотреть, автоматически ли она устанавливает высоту после того, как содержимое добавлено. Может стоить попробовать? – musefan
Да, я пробовал это. Но, к сожалению, если вы не устанавливаете высоту абзаца, он считается 0, и текст не отображается. Спасибо за подсказку, хотя! – Denis