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

  • Автор темы Автор темы teatral
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ну по идее твой способ все равно самый вменяемый: сдублировать фрейм, удалить в нем все символы кроме искомого параграфа, подогнать под контент, замерить габариты и пересчитать координаты по верхнему левому углу (переносы ж справа)
Ужасно скользко и шатко, но иначе наверное никак 'hz'
 
можно родной paragraph shading использовать, если заливка устроит вместо рамки
ну или да, paragraph border купить. вопрос в том, для чего это все делается

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

еще можно в кривые конвертить и брать geometricBounds
 
Второй по заднепроходности способ - сдублировать фрейм, заменить все символы кроме абзаца на пробелы и скурвить
 
а, ну да.
ну может просто дать небольшой зазор и не мучиться?
А может узнать, есть ли знак переноса в конце? Он же примерно по ширине будет как последний символ: померить ширину символа и добавить.
Но как узнать, есть ли в конце линии перенос?
 
а вот по-моему никак не узнать
вам рамка эта для чего? она в печать пойдет или например для корректуры выделение?
 
А может узнать, есть ли знак переноса в конце?
Наверное, есть какой то прямой способ, лень в спецификациях рыться
Но в конце концов можно посмотреть разбивается последнее слово или нет.
 
  • Спасибо
Реакции: teatral
а вот по-моему никак не узнать
вам рамка эта для чего? она в печать пойдет или например для корректуры выделение?
В печать
Наверное, есть какой то прямой способ, лень в спецификациях рыться
Но в конце концов можно посмотреть разбивается последнее слово или нет.
Да, наверное так и сделаю: если последний Word линии относится к двум Line - значит есть перенос - тогда я добавляю ширину последнего символа (полагая, что длина знака переноса приблизительно ему равна)
 
ну только надо проверить этот последний символ - не дефис ли
 
  • Спасибо
Реакции: teatral
ну проверь
напиши в пустом фрейме и запусти app.selection[0].paragraphs[0].words.length
 
Статус
Закрыто для дальнейших ответов.