if (myDocument.length < 1)

alert("Ни одного открытого документа нет!"); Следующая проверка - на наличие текста:

if (myDocument. textFrames . length. < 1)

В цикле пробегаем по всем страницам:

for(var i = 0; i < myDocument.pages.length; i++j { и заглядываем в каждый текстовый фрейм на них:

for(var j= 0; j<myDocument.pages[i].textFrames.length; j++)

В случае переполнения запоминаем номер страницы

if(myDocument.pages[i].textFrames[jl.overflows) overflowArray.push(i); Для удобства отображения номеров страниц с переполнением сводим их в строку:

if(overflowArray.length > 0) (

pages = overflowArray.j oin()

Что можно сделать и по-другому:

pages = overflowArray.toString()

И выводим отчет о результатах:

alert(Количество переполнений: " +overflowArray.length +

"\n" + "На страницах: " + pages) ; В противном случае - выводим соответствующее предупреждение:

alert("Переполнений нет! ")

А вот как можно решить эту же задачу проще и быстрее (листинг 5.19). Как известно, переполнение может возникнуть только в последнем фрейме цепочки, а каждая цепочка на языке InDesign - это отдельный объект story, у которого также есть свойство overflows. Таким образом, достаточно пробежаться по всем story (а их, как правило, меньше, чем всех фреймов, значит, скорость выполнения скрипта будет выше) и определить признак переполне ния. Если вдруг таковой имеется, найти у каждого материала последний текстовый фрейм и через свойство parent выйти на номер содержащей его страницы.

Листинг 5.19. Поиск переполнения текстовых фреймов (вариант 2)

var myStories = myDocument.stories lastFrames = []

for(var i = 0; i < myStories.length; i++) {

if(myStories[i].overflows){

-lastFrame = myStories[i].textFrames.lastltem() lastFrames.push(lastFrame) overflowPageNumber = lastFrame.parent.nane

В случае переполнения запоминаем номер страницы, а дальше- все,как в предыдущем варианте:

overflowArray.push(overflowPageNumber);

}

alert(overflowArray)

Для удобства номера страниц, на которых произошло переполнение, лучше вывести в виде раскрывающегося списка (использовать объект dialog.dropdown), выбор любого элемента из которого приводит к переходу на текстовый фрейм, вызвавший переполнение. Преимущества такого метода ярко проявляются при плотной верстке, когда материалов на одной странице множество. В таком случае вместо alert о добавим несколько срок (листинг 5.20).

Листинг 5.20. Вывод номеров страниц с переполнением в раскрывающийся список

dig = app.dialogs.add({name:" Поиск фреймов с переполнением", ^ canCancel:true}); column = dig.dialogColumns.add(); row = column.dialogRows.add();

row.staticTexts.add({staticLabel:"Выберите страницу, в которой переполнение, и нажмите кнопку ОК для перехода на нее"});

row = column.dialogRows.add();

dropdown = row.dropdowns.add({minWidth:400, stringList: overflowArray, 'З?

selectedlndex:0}); if (dig.show() == true)

{

// Переход на выбранную страницу document.layoutWindows[0].activePage = overflowArray[dropdown.selectedlndex];


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