[AI CC-CC2022] Отображение невмещающегося текста в TextArea

1amobot

Участник
Топикстартер
Сообщения
15
Реакции
0
Ни в апи, ни в самом иллюстраторе не нашёл возможности отображать текст независимо от того, вместился ли он в TextArea. Возможно это и логично, но не вижу даже переменной, которая говорила бы мне (например в соответствующем ему Word/TextRange) отобразится это слово или нет.
Так вот, уважаемые, не подскажете ли мне, может я люблюсь в глазки и всё таки она есть ? И быть может даже есть возможность переключить отображение такого скрытого текста?

Вангую что будут предложения кулибиных "увеличить область до того значения чтобы слово стало отображаться, потом его вытащить написать отдельно, а затем удалить увеличенную область", но но может есть что-то более изящное ?

И вопрос номер 2 касаемо координат слов в TextArea , есть ли некастыльные способы выудить координаты слов ? Максимум к чему я приблизился в поисках это insertionPointы в которых по идее должны быть координаты но их таки нет. Может всё таки где-то есть ? Пока довольствуюсь переводом текста в аутлайны.

Тема требует префикс, интересует любая версия AI, от CS5 до CC2020
 
И по первому и по второму вопросу спешу вас огорчить :(
Иллюстратор не верстальная система, такого в нем не предусмотрено. Если вас это немного утешит - в кореле такого нет тоже
 
  • Спасибо
Реакции: 1amobot
также characters и contents

а что нужно в итоге получить? можно например добавить второй фрейм, назначить его nextFrame к первому, тогда размер первого трогать не нужно.
 
  • Спасибо
Реакции: 1amobot
Что я делаю не так?
1618206386797.png
 
  • Спасибо
Реакции: 1amobot
а я откуда знаю, без кода не видно же
 
  • Спасибо
Реакции: 1amobot
хотя да, мне приглючилось )

тогда более запарный метод - у фрейма есть lines. считаем символы в каждой line, суммируем, и сравниваем с длиной textRange
 
  • Спасибо
Реакции: 1amobot и _MBK_
я делал так, но наверное можно и получше

Код:
 for(var l=0;l<myItem.lines.length;l++)
    frContents+=myItem.lines[l].length;
                            
var isOverset = frContents<myItem.contents.replace(/[\r\n]/g,"").length;
 
  • Спасибо
Реакции: 1amobot
  • Спасибо
Реакции: 1amobot
я делал так, но наверное можно и получше

Код:
 for(var l=0;l<myItem.lines.length;l++)
    frContents+=myItem.lines[l].length;
                          
var isOverset = frContents<myItem.contents.replace(/[\r\n]/g,"").length;
Прям как дохтор прописал! Lines то что нужно! Спасибо!