Замена текста по стилю объекта

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

doom21

Участник
Топикстартер
Сообщения
34
Реакции
5
Нужна помощь:
Есть ли возможность при замене в тексте (см. ниже код) воспользоваться еще стилем объекта?
Есть несколько текстовых фреймов, но с разными именами (стилями объектов). Задача сделать замену только в нужном фрейме. Если есть, подскажите пожалуйста как.
Код:
app.findTextPreferences = app.changeTextPreferences = null; 
app.findGrepPreferences = app.changeGrepPreferences = null; 

app.findGrepPreferences.findWhat = '(.+)'; 
app.findGrepPreferences.appliedParagraphStyle = "TV-text1";
app.changeGrepPreferences.changeTo = '$1'; 
app.changeGrepPreferences.appliedParagraphStyle = "TV_8.5x8.5";
myStory.changeGrep();
 
с разными именами (стилями объектов)
Имя объекта — это отдельное свойство, напрямую не связанное с объектным стилем. Задаётся вручную в окне слоёв, либо скриптом по какому-либо алгоритму:
Код:
curTextFrame.name = "monday"; //раз уж речь о TV, пусть будет такое имя
Вот по этому имени можно в дальнейшем до этого фрейма добраться:
Код:
app.textFrames.itemByName("monday").changeGrep();
Как то же самое провернуть через объектный стиль? Наверное, только через проверку в цикле каждого фрейма, какой стиль ему назначен.
 
  • Спасибо
Реакции: doom21
возникает второй вопрос:
при обработки одного канала (на разных страницах к примеру фрейма имя: "01", 7 страниц - семь фреймов с одним именем) по варианту предложенному вами только 1 страница обрабатывается.
Вот и возникает вопрос что сделать. :)
 
Пройтись циклом по страницам.
Быть может в новых версиях иначе, но до CC доступ есть в том числе по
app.activeDocument.pageItems и
app.activeDocument.allPageItems

It is important to note the distinction between the page-items collection and the allPageItems collection. The former is a collection containing only the top-level page items in a layer. If a page item is inside a group, for example, it will not appear in the pageItems collection

В смысле pageItems не включают в себя элементы внутри групп, текстовых фреймов и т.п., а allPageItems - включают абсолютно всё.

Код:
...
app.findGrepPreferences.findWhat = '';
...
app.changeGrepPreferences.changeTo = '';
...
В данном случае, раз меняется только стиль, а не содержимое можно облегчить задачу убрав текст поиска и замены, точнее, указать пустые строки.
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.