geometricBounds[1], geometricBounds[0]+PREF_HIGHT, geometricBounds[1]+_WIDTH] fit(FitOptions.centerContent)

} else fit(FitOptions.frameToContent)

// Присваиваем стиль контейнеру иллюстрации.

// InDesign поддерживает стили для объектов

- applyObjectStyle(aD.objectStyles[1], true)

}

// Если контейнер был увеличен в размерах, необходимо увеличить // размеры текстового фрейма - иначе останется переполнение if(overflows) fit(FitOptions.frameToContent) if(geometricBounds[3] < rectangles[0].geometricBounds[3])

geometricBounds = [geometricBounds[0], geometricBounds[1],geometricBounds[2], rectangles[0].geometricBounds[3]]

// Задаем форматирование для абзаца с иллюстрацией и подписи к ней paragraphs[1].appiystyle(pS [pSA [ aS [ 1]]], true) paragraphs[2].applyStyle(pS [pSA [ aS[2]]], true)

// Корректируем размеры текстового фрейма с учетом форматирования // заключенного в нем текста fit(FitOptions.frameToContent)

Почему нельзя было совместить операции fit о - вместо двух использовать всего одну? Дело в том, что InDesign "видит" лишь тот текст, который видим. Предположим, мы уберем первую операцию - что получится? Если контейнер с иллюстрацией превысил свои первоначальные размеры, оба абзаца - содержащий контейнер для публикации и следующие- в контейнер не поместятся, таким образом, они выпадают из поля зрения InDesign. В результате никаких операций с ними проделать уже нельзя - этого-то мы и избегаем.

Пытаемся избежать ситуации, когда на следующую строчку переносится всего несколько символов - уменьшаем трекинг текста до -25 (найдено эмпирическим путем). Если количество строк уменьшилось, значит, нам удалось избежать "висячки", трекинг оставляем. Если же количество строк осталось неизменным, значит, данная мера не помогла, текста слишком много, а больше сжимать уже нельзя, поэтому отпускаем трекинг до прежнего значения:

with(paragraphs[0]) { tracking -= 25;

if (lines.length>l) tracking += 25 } applyObjectStyle(aD.objectStyles[5], true)

}

// Последние, дополнительные шаги - зачистка:

// удаляем из импортированного текста те строчки,

// которые были перенесены в созданные нами фреймы, if (target=inline_tF) (

target[0].parent.applyStyle(pS [pSA [aS[3]]] , true) endP.remove(); startP.remove() pars[0].spaceBefore = 0 } else {

pars.itemByRange(startP, endP).remove()

} else {

alert ("Требуемый файл не найден") }

}else {

alert ("Поместите курсор в место, где должна быть размещена иллюстрация")

}

Задаем требуемую ширину и высоту фрейма, а также указываем путь home к диаграммам по умолчанию. Поскольку этот скрипт писался для собственного использования, в нем было решено отказаться от диалогов, размеры кода которых зачастую превышают размеры самой работающей части, а открыть скрипт раз в месяц и заменить в нем одну строчку- минутное дело. Также не делается проверка на тип выделения - предполагается, что курсор стоит в том месте, куда будет помещена диаграмма.

Дальнейшие действия выполняются только, если существует выделение. Среди них: ссылки на абзац, в котором стоит курсор, задаются стили, которые будут ИСПОЛЬЗОВаТЬСЯ ДЛЯ форматирования текста: Diagram Header, Diagram, Diagram Footer, Spacer.


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