mySelection = арр.selection[0]
// Переходим на сам импортированный материал myStory = mySelection.parentStory
mytextFrames = myStory.textFrames
for (j=0; j< mytextFrames.length; j++) (
// Просматриваем текстовые блоки на предает наличия в ник вложенных // текстовых блоков - следов от некорректно созданных подписей for (k=0; k< mytextFrames[j].textFrames.length; k++){ mytextFrames [j].textFrames[k].remove(); k-
)
}
Поскольку каждая надпись импортируется в виде заякоренного текстового фрейма, следует удалить все текстовые блоки, которые входят в состав других фреймов.
Еще один нюанс, который не связан со скриптингом непосредственно, но не удержусь, чтобы не поделиться. Некоторые авторы вопреки требованиям подачи материалов вставляют изображения (в том числе полноцветные растровые) в текст документа, не предоставляя их отдельно. Копирование через системный буфер в данном случае не поможет- изображения вставляются в урезанной палитре (256 цветов, поэтому практического толка при работе с фотоизображениями никакого).
"Вытащить" фотографии тяжело, но можно. Проверенный вариант- копирование содержимого экрана (клавиша <PrintScreen>). Для получения наивысшего качества сначала восстанавливают исходные размеры изображения (обычно авторы их сжимают), потом фотография размещается на экране так, чтобы она занимала как можно большую площадь, и берется снимок экрана, который потом кадрируется по требуемым размерам.
5.9. Связывание текстовых фреймов
Материал, размещенный в публикации, очень часто размещается более чем в одном фрейме. Для связи текстовых фреймов между собой в InDesign предусмотрены свойства previousTextFrame И nextTextFrame, позволяющие обратиться к его соседям (любой фрейм имеет эти свойства, но если фрейм одиночный, у Него previousTextFrame=null И nextTextFrame=null). Также ЭТИ свойства активно используются для перемещения между объектами, определения последнего фрейма в материале (у него также nextTextFrame=nuii).
С учетом того что в InDesign также существуют методы previousitemi), nextitemO, становится непонятно, зачем были введены дополнительные свойства - ведь с успехом можно было бы обходиться без них.
Чтобы соединить между собой два фрейма, достаточно использовать такую конструкцию:
myTextFrameA.nextTextFrame = myTextFrameB
Либо, что совершенно одинаково,
myTextFrameC.previousTextFrame = myTextFrameB; Для разрыва существующих связей достаточно сбросить любой их двух признаков:
myTextFrameA.nextTextFrame ■= NothingEnum.nothing; Если использовать такой подход напрямую, то все последующие фреймы из цепочки останутся без текста. Значит, понадобится повторное восстановление связей. Давайте попробуем найти более простой путь. Предположим, мы удалили фрейм. При этом связь к удаленному объекту автоматически перестроится на следующий, что нам и нужно. При этом текст из удаленного фрейма будет вытолкнут на следующий фрейм и материал "поплывет". Чтобы такого не произошло, сначала в удаляемом фрейме сотрем текст, в результате чего объем текста в материале сократится ровно на необходимое количество знаков и после удаления фрейма весь текст останется на своем месте. Чтобы текст не потерялся - он должен сохраниться в целостности и невредимости- мы удаляемый фрейм дублируем и, таким образом, ничего не потеряем, и задачу выполним.