/*
Данный скрипт устанавливает левый отступ для выделенных строк
текста так, чтобы самая длинная строчка блока оказалась по центру
фрейма.
Практическое применение - верстка стихов, которые надо оставлять с
выключкой в левый край, но ставить по центру полосы.
(c) Евгений Трефилов, 2007 | e-mail: evgenyt@nwgsm.ru
Особая благодарность Максиму Стринжа за помощь и консультации :pray:
*/
if ((app.selection.length == 0) || (app.selection[0].constructor.name != "Text"))
{
alert ("Please select some text with Text tool");
}
else
{
myLines=app.selection[0].lines;
var maxLength;
maxLength=0;
sumLength=0;
//finding longest line among selected
for (myCounter = 0; myCounter < myLines.length; myCounter++) {
currentLength=calculateLineLength(myLines.item(myCounter));
sumLength+=currentLength;
// if (currentLength > maxLength)
//{
//maxLength=currentLength;
//}
}
maxLength=sumLength/myLines.length;
//getting width of frame
myFrame = app.selection[0].parentTextFrames[0];
myFrameWidth = myFrame.geometricBounds[3]-myFrame.geometricBounds[1];
if (myFrame.textFramePreferences.textColumnCount) {
myFrameWidth=(myFrameWidth / myFrame.textFramePreferences.textColumnCount) - myFrame.textFramePreferences.textColumnGutter;
}
//calculating indent
myLeftIndent = (myFrameWidth - maxLength)/2;
//applying
for (myCounter = 0; myCounter < myLines.length; myCounter++) {
myLines.item(myCounter).leftIndent=myLeftIndent;
}
}
function calculateLineLength (myLine)
{
myLength = myLine.characters.item(myLine.characters.count()-3).horizontalOffset - myLine.characters.firstItem().horizontalOffset;
return (myLength);
}