Помощь - Поиск - Пользователи - Календарь
Полная версия: Возможно ли в Illustrator CS4 средствами JS сделать "fit artboard to Artwork bounds"?
ProDTP > Графика и препресс > Скриптинг
oyan
Возможно ли в Illustrator CS4 средствами JS сделать "fit artboard to Artwork bounds"?
Периодически пытаюсь разобраться в illustrator_scripting_reference_javascript_CS4.pdf что-то не нахожу похожих методов и свойств... По адобовскому форуму понял, что в SC3 такое не возможно... В-общем зашел в тупик.
Заранее спасибо за ответы.
Kuzm
Посмотрел reference для CS3.
Что если перебрать все бъекты для определения координат самой левой верхней и самой правой нижней точек geometricBounds. Так получим координаты Artwork bounds и, соответственно, размеры которые дожен принять Artboard. Поменять размеры Artboard, затем сдвинуть все объекты. Долго конечно, но должно работать.
oyan
Да, скорее всего  буду делать именно так.
Думал одной-двумя строчками решается, но вижу, что придется разбираться по-настоящему.
G-Kir
Двумя строчками можно решить если предварительно выделять всё Crtl+A.
moroz9
Цитата(oyan @ Jul 27 2009, 10:09) *

Да, скорее всего  буду делать именно так.
Думал одной-двумя строчками решается, но вижу, что придется разбираться по-настоящему.

Ну и как? удалось ли решить данную задачку?
oyan
Пока увы нет.
Не врублюсь как обратиться к самому нижнему объекту sad.gif
Можно было как предлагали записать экшен ctl+a и потом вызвать js кот. делает размер листа по выделенному, но оказывается вызов js из экшенов работает только до перезагрузки илла...
AirGraph
Думаю надо сгруппировать все объекты, а далее все будет определяться координатами и размером этой группы.

AirGraph.
OlegButrin
Код
function getArtboardRectangle (myDoc) {
if (myDoc.pageItems.length == 0) {
  return myDoc.artboards[0].artboardRect;
  }
var result = myDoc.pageItems[0].visibleBounds;
for (var c = 0; c < myDoc.pageItems.length; c++) {
  var myPI = myDoc.pageItems[c].visibleBounds;
  result[0] = Math.min(myPI[0], result[0]);
  result[1] = Math.max(myPI[1], result[1]);
  result[2] = Math.max(myPI[2], result[2]);
  result[3] = Math.min(myPI[3], result[3]);
  }
return result;
}

app.activeDocument.artboards[0].artboardRect = getArtboardRectangle (app.activeDocument);


Работает в Иллюстраторе не ниже CS4.
oyan
Спасибо огромное. Все работает!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2012 Invision Power Services, Inc.

Реклама

   Rambler's Top100    Яндекс цитирования