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

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Ну по идее твой способ все равно самый вменяемый: сдублировать фрейм, удалить в нем все символы кроме искомого параграфа, подогнать под контент, замерить габариты и пересчитать координаты по верхнему левому углу (переносы ж справа)
Ужасно скользко и шатко, но иначе наверное никак 'hz'
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
можно родной paragraph shading использовать, если заливка устроит вместо рамки
ну или да, paragraph border купить. вопрос в том, для чего это все делается

подогнать под контент

еще можно в кривые конвертить и брать geometricBounds
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Второй по заднепроходности способ - сдублировать фрейм, заменить все символы кроме абзаца на пробелы и скурвить
 

teatral

Участник
Топикстартер
Сообщения
350
Реакции
365
а, ну да.
ну может просто дать небольшой зазор и не мучиться?
А может узнать, есть ли знак переноса в конце? Он же примерно по ширине будет как последний символ: померить ширину символа и добавить.
Но как узнать, есть ли в конце линии перенос?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а вот по-моему никак не узнать
вам рамка эта для чего? она в печать пойдет или например для корректуры выделение?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
А может узнать, есть ли знак переноса в конце?
Наверное, есть какой то прямой способ, лень в спецификациях рыться
Но в конце концов можно посмотреть разбивается последнее слово или нет.
 
  • Спасибо
Реакции: teatral

teatral

Участник
Топикстартер
Сообщения
350
Реакции
365
а вот по-моему никак не узнать
вам рамка эта для чего? она в печать пойдет или например для корректуры выделение?
В печать
Наверное, есть какой то прямой способ, лень в спецификациях рыться
Но в конце концов можно посмотреть разбивается последнее слово или нет.
Да, наверное так и сделаю: если последний Word линии относится к двум Line - значит есть перенос - тогда я добавляю ширину последнего символа (полагая, что длина знака переноса приблизительно ему равна)
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну только надо проверить этот последний символ - не дефис ли
 
  • Спасибо
Реакции: teatral

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну проверь
напиши в пустом фрейме и запусти app.selection[0].paragraphs[0].words.length
 
Статус
Закрыто для дальнейших ответов.