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

  • Автор темы Автор темы teatral
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

teatral

Участник
Топикстартер
Сообщения
350
Реакции
365
Собственно Subj: Как вычислить высоту многострочного абзаца?
 
Если высота строк у абзаца одинаковая, тогда надо умножить высоту одной строки на количество строк в абзаце, если нет, то перебрать высоту всех строк и сложить.
количество строк: paragraphs[0].lines.count
интерлиньяж: paragraphs[0].lines[0].leading
 
у line есть свойства baseline и endBasline, опираясь на них можно поточнее высчитать.
 
  • Спасибо
Реакции: teatral
А еще у абзаца есть первая и последняя строки. А у строк есть разные интересные свойства типа ascent.
А еще параграф может быть разбит по двум связанным фреймам. В общем, танцы интересные.
 
  • Спасибо
Реакции: Валера1966 и teatral
Спасибо всем. Получилось вот что (извините, но на VB):
Код:
HeightPar =  MyPar.Lines(MyPar.Lines.Count).baseLine - MyPar.Lines(1).baseLine + MyPar.Lines(1).Ascent+MyPar.Lines(MyPar.Lines.Count).Descent
Это для случая, если абзац в одних фрэйме и колонке
Для разных - нужно просуммировать высоты по той же формуле, но брать первую и последнюю строку фрэйма и колонки
 
Статус
Закрыто для дальнейших ответов.