Вертикальное выравнивание текста в текстовом фрейме. Как?

Статус
Закрыто для дальнейших ответов.

Maxbor

Топикстартер
12 лет на форуме
Сообщения
213
Оценка реакций
80
Собственно, требуется сабж. Поиск по объектной модели, поиск по форуму и эксперименты со скриптом Бутрина ObjectInfo результатов не дал.
Иными словами, как задать тип выравнивания по вертикали (top/center/bottom/justify)?
 

Specialist

12 лет на форуме
Сообщения
2 035
Оценка реакций
8
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

TextFramePreference.verticalJustification
Data Type: VerticalJustification
The vertical alignment of the text content.


VerticalJustification
Enumeration
Class Elements

Vertical alignment options for text.


VerticalJustification.TOP_ALIGN (Read only)
Data Type: number
Text is aligned at the top of the object.
Default Value: 1953460256

VerticalJustification.CENTER_ALIGN (Read only)
Data Type: number
Text is center aligned vertically in the object.
Default Value: 1667591796

VerticalJustification.BOTTOM_ALIGN (Read only)
Data Type: number
Text is aligned at the bottom of the object.
Default Value: 1651471469

VerticalJustification.JUSTIFY_ALIGN (Read only)
Data Type: number
Lines of text are evenly distributed vertically between the top and bottom of the object.
Default Value: 1785951334
Надеюсь исчерпывающе?
 

Maxbor

Топикстартер
12 лет на форуме
Сообщения
213
Оценка реакций
80
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

Но оно ReadOnly. А как изменить сие свойство у выбранного объекта?
 

Maxbor

Топикстартер
12 лет на форуме
Сообщения
213
Оценка реакций
80
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

Сорри. Уже сам додумал
Код:
app.selection[0].textFramePreferences.verticalJustification = VerticalJustification.bottomAlign;
 

Specialist

12 лет на форуме
Сообщения
2 035
Оценка реакций
8
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

А с чего вы взяли что оно Read only?

Кстати, ваш код небезопасен. Выделен может быть и не фрейм. Надо или проверять, или использовать обработку исключений.
 

Steve

Участник
Сообщения
227
Оценка реакций
0
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

Решил новую тему не создавать, т.к. имеет прямое отношение к VJ.
В некоторых случаях "вертикальное выравнивание" нельзя применить к фрейму, а нужно сделать JUSTIFY_ALIGN. Какой самый быстрый и точный метод имитации JUSTIFY_ALIGN (исходный фрейм с TOP_ALIGN)?
Если изменять только spacebefore, то абзацы с одним стилем "разбиваются" – равносильно paragraph spacing limit>0.
Если изменять leading,то возникает проблема определиния leading'a у строки с autoleading +могут быть inline objectы.

какие есть идеи?
 

Specialist

12 лет на форуме
Сообщения
2 035
Оценка реакций
8
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

А какие проблемы определить лидинг у строк с автолидингом?
 

Steve

Участник
Сообщения
227
Оценка реакций
0
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

Если определять как разницу baseline, то вроде нет проблем.
просто ищу самый быстрый и точный метод.
 

Specialist

12 лет на форуме
Сообщения
2 035
Оценка реакций
8
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

Взять значение автолидинга и умножить на кегль?
 

Steve

Участник
Сообщения
227
Оценка реакций
0
Ответ: Вертикальное выравнивание текста в текстовом фрейме. Как?

не знаю как в CS3, а в СS2 при autoleading, leading содержит не актульаное значение, а enumerator 1635019116.
Поэтому чтобы определить реальный лидинг придется проверять каждый character на inline object и pointsize (максимальный).
Либо через baseline.
 
Статус
Закрыто для дальнейших ответов.