[ID CC-CC2021] Как вычислить высоту многострочного абзаца?

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

teatral

Участник
Топикстартер
Сообщения
350
Реакции
365
Собственно Subj: Как вычислить высоту многострочного абзаца?
 

KostyaSA

Участник
Сообщения
78
Реакции
17
Если высота строк у абзаца одинаковая, тогда надо умножить высоту одной строки на количество строк в абзаце, если нет, то перебрать высоту всех строк и сложить.
количество строк: paragraphs[0].lines.count
интерлиньяж: paragraphs[0].lines[0].leading
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
у line есть свойства baseline и endBasline, опираясь на них можно поточнее высчитать.
 
  • Спасибо
Реакции: teatral

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
А еще у абзаца есть первая и последняя строки. А у строк есть разные интересные свойства типа ascent.
А еще параграф может быть разбит по двум связанным фреймам. В общем, танцы интересные.
 
  • Спасибо
Реакции: Валера1966 и teatral

teatral

Участник
Топикстартер
Сообщения
350
Реакции
365
Спасибо всем. Получилось вот что (извините, но на VB):
Код:
HeightPar =  MyPar.Lines(MyPar.Lines.Count).baseLine - MyPar.Lines(1).baseLine + MyPar.Lines(1).Ascent+MyPar.Lines(MyPar.Lines.Count).Descent
Это для случая, если абзац в одних фрэйме и колонке
Для разных - нужно просуммировать высоты по той же формуле, но брать первую и последнюю строку фрэйма и колонки
 
Статус
Закрыто для дальнейших ответов.