// запоминаем последний найденный на странице текст 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), не хватает полужирного - дублирует оригинал и дает дубликату небольшое смещение.


⇐ вернуться назад | | далее ⇒