Как получить номер страницы где находится ключевое слово

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

BIGRED

Топикстартер
10 лет на форуме
Сообщения
231
Реакции
0
Добрый день!
У меня индизайн CS3. Есть публикация на несколько десятков страниц. Требуется найти номер страницы где находится ключевое слово.
Понятно, зная местоположение курсора или само выделенное слово номер страницы получить легко. Отсюда:
Можно конечно-же тупо переставлять курсор и обрабатывать на пути слова, но как то долго все это.
Пробовал через findText, обнаружил что при поиске курсор в отличие от ручного поиска никуда не переходит и ничего не выделяет.
Или я чего-то еще не знаю. Вроде объектную модель просмотрел. Но ничего в помощь не нашел.
Подскажите есть ли решение через findText, или может еще как-то можно?
 
Ответ: Как получить номер страницы где находится ключевое слово

Если родитель текстового фрейма с нужным словом - страница (т.е. фрейм не в группе, не "якорь" и т.п.), то
Код:
var myPage = слово.parentTextFrames[0].parent;
Потом можно и перейти на эту страницу:
Код:
app.activeWindow.activePage = myPage;
 
Ответ: Как получить номер страницы где находится ключевое слово

В смысле так:
var myWords = 'ключ';
var myPage = myWords.parentTextFrames[0].parent;
???
Не - фигня, получается.
Там просто цепочка связанных фреймов распределенных по страницам. И еще? Надо, чтобы курсор стоял в тексте?. Сейчас просто на работе, а скрипт дома, не могу проверить.
 
Ответ: Как получить номер страницы где находится ключевое слово

Если так, то конечно фигня)).
Сначала создается массив найденных слов:
Код:
app.findTextPreferences.findWhat = "слово";
var myWords = app.activeDocument.selection[0].parentStory.findText();
Далее обратиться к найденному объекту и получить страницу:
Код:
var myPage = myWords[0].parentTextFrames[0].parent; //или myWords[0].[B]contents.[/B]parentTextFrames[0].parent, не помню точно
app.activeWindow.activePage = myPage;
 
Ответ: Как получить номер страницы где находится ключевое слово

Ага, вот теперь действительно прояснилось, дома попробую и отпишусь.
 
Ответ: Как получить номер страницы где находится ключевое слово

Да, все получилось, спасибо большое Eugenyus. Ну и если надо узнать все страница, то текст будет такой:
var k='';
app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.findWhat = "ключ";
var myWords = app.activeDocument.selection[0].parentStory.findText();
for (i=0; i<(app.activeDocument.selection[0].parentStory.findText().length-1); i++)
{ var myPage = myWords.parentTextFrames[0].parent;
k=k+ myPage.name+ ' ' ; }
alert(k);
 
Ответ: Как получить номер страницы где находится ключевое слово

Содержимое цикла лучше завернуть в try{}catch(){}, ведь искомое может быть в оверсете.
 
Ответ: Как получить номер страницы где находится ключевое слово

Для правильности конечно, согласен. У меня проще, оверсет то я не допущу.
 
Статус
Закрыто для дальнейших ответов.