Избранное »

22.09.2014 – 07:27 | 2 комментария | 27 541 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com работает канал «InDesign Мастерская вёрстки». Там уже размещены более 70 видео с полным описанием как работать с программой DoTextOK. Другие интересные темы, касающиеся работы …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скриптинг

Метод duplicate для текстового фрейма

Добавлено на 29.01.2012 – 00:08Без комментариев | 493 views

Метод duplicate для текстового фрейма  нет так прост, как может показаться на первый взгляд. В своём активе он имеет два параметра и второй параметр имеет двоякое значение в зависимости от того, применяется или нет первый. Начинающим изучать программирование будет полезно ознакомиться с этим подробнее и на русском языке.

Итак,

Метод duplicate()

Синтаксис: dublicate(to, by);
Каждый из параметров может быть опущен, и оба параметра могут быть опущены одновременно. Первый параметр, «to«, обозначает место, куда будет копироваться фрейм. Это может быть разворот, страница, слой. Понимание параметра «by» немного сложнее. Он состоит из двух значений (массив), относящихся к координатам осей x и y. Это могут быть как числа, так и строки, которыми задаются координаты.
Возможны следующие варианты:
а) если параметр «to» указан, то параметром «by» задается расположение нового текстового фрейма относительно старого. То есть величины сдвига по горизонтали и по вертикали.
b) если параметр «to» опущен, параметр «by» задает абсолютные координаты x, y левого верхнего угла нового текстового фрейма.

Пример 1.

myDoc = app.documents.add(); // Создаем новый документ
myPage = myDoc.pages[0]; // При создании нового документа всегда есть одна страница
myTextFrame = myPage.textFrames.add(); // Добавляем на страницу текстовый фрейм
myTextFrame.geometricBounds = [100,100,200,200]; // текстовый фрейм располагаем по координатам [Y1,X1,Y2,X2]
myTextFrame.duplicate(); // Дублируем текстовый фрейм

В этом примере оба параметра опущены, в результате будет создан новый текстовый фрейм на той же странице, такого же размера и расположенный по таким же координатам, как и исходный текстовый фрейм.

Пример 2.

myDoc = app.documents.add();
myPage = myDoc.pages[0];
myTextFrame = myPage.textFrames.add();
myTextFrame.geometricBounds = [100,100,200,200];
myTextFrame.duplicate([10,20]);

В этом примере параметр «to» опущен, так что массивом [10,20] задаются координаты верхнего левого угла x, y, и его geometricBounds будут [20,10,120,110]. Новый текстовый фрейм будет располагаться на той же странице, что и исходный, так как параметр «to» не задан.

Пример 3.

myPage= app.documents.add().pages[0];
myTextFrame = myPage.textFrames.add();
myTextFrame.geometricBounds = [ 100,100,200,200] ;
myTextFrame.duplicate( myPage, [10,20] );

В этом примере задан параметр «to«, это первая страница документа, значит числа второго параметра (те, что в квадратных скобках) будут задавать смещение нового текстового фрейма относительно исходного. Новыми координатами будет массив geometricBounds [120,110,220,210];

Пример 4.

myDoc = app.documents.add();
myPage = myDoc.pages[0];
myTextFrame = myPage.textFrames.add()
myTextFrame.geometricBounds = [ 100,100,200,200] ;
secondPage = myDoc.pages.add() ;
myTextFrame.duplicate( secondPage );

В четвертом примере к документу добавляется ещё одна страница и в методе duplicate представлен только первый параметр, который указывает назначение копирования. Так как не указано местоположение текстового фрейма, то оно останется таким же, как и у исходного фрейма, т.е. geometricBounds = [100,100,200,200]. Но на второй странице.

Пример 5.

myDoc = app.documents.add();
myPage = myDoc.pages[0];
myTextFrame = myPage.textFrames.add();
myTextFrame.geometricBounds = [ 100,100,200,200] ;
secondPage = myDoc.pages.add() ;
myTextFrame.duplicate( secondPage, [10,20] );

Здесь задан параметр «пункт назначения» — secondPage (2-я страница документа), следовательно, вторым параметром метода duplicate задаётся смещение координат нового фрейма относительно исходного. И его geometricBounds будут… Впрочем сосчитайте сами и проверьте.

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.