// запоминаем последний найденный на странице текст mySearchContents = mySearch[mySearch.length-1].contents; break(); Операция break о прерывает дальнейший поиск, что значительно экономит время.
Если же была выбрана опция занесения в колонтитул всех найденных совпадений, то текст каждого следующего совпадения приклеивается через выбранный разделитель dlgj±Lv.selectedlndex к предыдущему:
case 2:
mySearchContents = mySearch[0].contents; for(i=l; i<mySearch.length; i++)
mySearchContents += " " + div[DLG_div.selectedlndex] + " " 4^
+ mySearch[i].contents; mySearchContents = mySearchContents.replace(/\r/, "") ; Параллельно удаляем из найденных строк символы абзаца \г, чтобы после объединения они образовали одну строку.
}} while (false)
Механизм переноса текста в колонтитул такой: сначала на каждой странице с фреймом, принадлежащем выделенной цепочке, ищем фрейм с названием "L" или "R". Родительским объектом по отношению ко всем находящимся на странице объектам является страница:
var myPage = mySelection.parent
var colonTitle = myPage.textFrames[labels[myPage.documentOffset%2]]; Конструкция myPage.documentOffset%2 позволяет перебирать содержимое массива labels: documentoffset- это номер текущей страницы. Если она четная (myPage.document0ffset%2=0, %- операция нахождения остатка от деления, если остатка нет, то он равен 0), ищется фрейм с названием "L", если нечетная- "R" (берется labels[1]). Потом переходим на мастер-страницу, на основании которой эта страница была сформирована:
var MasterTF = myPage.appliedMaster.textFrames
Выполняем проверку: если колонтитул все еще связан с мастер-страницей (page.textFrames. item=null, т. е. самой странице фрейм "L" или "R" не принадлежит, т. к. связан с мастером) и на мастере есть фреймы "L" или "R", то связь разрываем с тем, чтобы получить возможность изменить его содержание (механизм рассматривался ранее):
if (colonTitle==null && MasterTF[labels[myPage.document0ffset%2]] != null)
{
colonTitle = MasterTF[ labels[myPage.documentOffset%2] ]. override(myPage); После этого найденный текст со стилем
myParagraphStyles[DLG_myParagraphStyles.selectedlndex]
переносим в колонтитул:
colonTitle.contents = mySearchContents
}
Если же фрейм назначения на странице обнаружен не был, выводим предупреждение. В случае если таких страниц много, выскакивающие окна станут раздражать, а потому ограничимся только однократным сообщением:
else{
if(!check) {
alert("На стр. " + master.name + " нет требуемого фрейма!") check = true} }
Поиск текста и заполнение колонтитулов проводим до тех пор, пока не достигнем последнего фрейма в цепочке:
while (mySelection.nextTextFrame)
И последнее замечание: при выделении текстового фрейма перед запуском скрипта убедитесь, что он - первый в цепочке, поскольку поиск будет проводиться только в следующих за ним фреймах.
ГЛАВА 6
Форматирование текста
Среди основных инструментов форматирования текста шрифты занимают одну из важнейших позиций, поскольку они способны подчеркнуть индивидуальность издания. Каждое начертание представляет собой отдельный шрифт: например. Times New Roman - обычное начертание, а его полужирный вариант- Times New Roman Bold и т.д. Если какое-либо начертание отсутствует, оно недоступно для использования. В этом- принципиальная разница между InDesign и XPress: последний пакет менее щепетилен в вопросах использования шрифтов и создает недостающее начертание собственными методами. Например, если не хватает наклонного- он его создает из обычного (Plain), к которому применяет скос (skew), не хватает полужирного - дублирует оригинал и дает дубликату небольшое смещение.