[ID CC-CC2022] Как получить коллекцию объектов не состоящих в группах?

  • Автор темы Автор темы Smileroff
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Smileroff

Участник
Топикстартер
Сообщения
5
Реакции
0
Как получить все объекты расположенные на страницах, но не состоящих в группах, для последующего экспорта в jpg?
Не могу понять, как можно проверить элементы коллекции pageItems состоят они в группах или нет.
 
pageItems это либо группы, либо отдельные элементы. так что просто проверяйте каждую pageItem не группа ли это

все объекты, включая те, что внутри групп выдает allPageItems
 
Огромное спасибо за подсказку. А то русской документации почти нет, ничего по английски не пойму)
 
я использую вот такую форму для определения типа pageitem, не знаю есть ли более простой способ не требующий запуска дускрипт, в функцию необходимо передать id pageitem'а
Код:
def getTypeById(id):
  return app.DoScript('app.activeDocument.pageItems.itemByID(%s).getElements()[0].constructor.name;' % id,1246973031)

if getTypeById(pageitem.id) == 'Group'
if getTypeById(pageitem.id) == 'TextFrame'

и так далее
 
не знаю есть ли более простой способ не требующий запуска дускрипт
%8
А что вам собственно надо? Зачем такая заденепроходная конструкция, если constructor.name уже искомое возвращает?
 
Потому что пишу на языке python с подключением через win32com и как по-другому узнать тип pageitem'а я не знаю
 
Так у вас тогда вопрос по питону а не по адобовскому скриптингу
Спецы по питону тут тоже есть но я к ним не отношусь '))'
Тем не менее, Кэп всегда готов прийти на помощь - вот вы из этого самого удаффа питона вызываете метод app.DoScript. А что вам мешает вызвать сразу непосредственно
app.activeDocument.pageItems.itemByID(%s).getElements()[0].constructor.name ?
Другой животрепещущий вопрос - чем обусловлено более чем странное желание обращаться к pageitem через его численное id?
 
Последнее редактирование:
А что вам мешает вызвать сразу непосредственно
app.activeDocument.pageItems.itemByID(%s).getElements()[0].constructor.name ?
если непосредственно так, то питон выдаст ошибку )
Другой животрепещущий вопрос - чем обусловлено более чем странное желание обращаться к pageitem через его численное id?
чтобы узнать тип объекта, группа это или текстфрейм или какой-нибудь ректангел, чтобы потом обращаться к этому объекту соответствующим образом

Что касается вопроса топикстартера, то документации на русском действительно нет, тока на английском, более того вся документация сводится к созданию объектов из скрипта, а зачастую нужно брать get характеристик и иногда бывают серьезные траблы по этому поводу, так что многие вещи делаются просто методом "тыка"
 
вся документация сводится к созданию объектов из скрипта, а зачастую нужно брать get характеристик и иногда бывают серьезные траблы по этому поводу

с этого места поподробнее
 
если непосредственно так, то питон выдаст ошибку )
Ну возникает вопрос характера этой ошибки Дело в том, что, как я погляжу, питон превосходно обращается к индизайновской скриптовой можели. Или я чего то недопонимаю?
К примеру, pageitem.id вы вызываете безо всякого скрипта, что мешает к примеру сделать pageitem.constructor.name ?
 
Дело в том, что, как я погляжу, питон превосходно обращается к индизайновской скриптовой можели. Или я чего то недопонимаю?
Питон общается через COM-интерфейс. То есть, свойства и методы доступны только такие же, как у VB, не больше.
Что же касается принципиального подхода, то я бы рекомендовал делать проект так, чтобы вызывать функции через doScript рабочими блоками, оставляя для Питона только общий интерфейс.
 
с этого места поподробнее
из последнего что я делал - модульная сетка, направляющие отвечающие за строки находятся в pages.guides , а те что отвечают за колонки в document.masterSpreads

ps или наоборот )) вобщем в скриптинге под adobe есть большая запутка, а может просто я не программист, а так верстальщик пытающийся облегчить себе жизнь
 
Совсем не видит.
Ужас! Это ж как же приходится извращаться на VB, чтоб выкрутиться из этой проблемы
Вызывать скрипт, передавая ему численное значение id - это на мой взгляд, нечто запредельное :-(
верстальщик пытающийся облегчить себе жизнь
Если действительно так, то вы, скорее, осложняете себе жизнь, связавшись с питоном. Что мешает просто обычный скрипт из индизайна вызывать?
 
Если действительно так, то вы, скорее, осложняете себе жизнь, связавшись с питоном. Что мешает просто обычный скрипт из индизайна вызывать?
наверное отсутствие нужных скриптов в поставке индизайна :)
 
наверное отсутствие нужных скриптов в поставке индизайна
Я понимаю
Жизнь вообще несовершенная штука, а потом смерть
Но вы то скрипт пишете: почему, внезапно, на питоне, из которого так изгаляться приходится, а не на родном индизайновском яваскрипте? Чтобы сделать ее еще сложнее?
 
Я понимаю
Жизнь вообще несовершенная штука, а потом смерть
Но вы то скрипт пишете: почему, внезапно, на питоне, из которого так изгаляться приходится, а не на родном индизайновском яваскрипте? Чтобы сделать ее еще сложнее?
Выбор языка - дело привычки, питон я используя не только для общение с индизайном, на нем например я писал парсеры для сайтов, там есть много виджетов, много готовых модулей практически под все случаи жизни
 
Вызывать скрипт, передавая ему численное значение id - это на мой взгляд, нечто запредельное
Не так уж редко это приходится делать и без привлечения Питона или еще чего. Я довольно часто пишу в документ служебную информацию через insertLabel, в том числе и id специальных объектов. Это удобно.
Если действительно так, то вы, скорее, осложняете себе жизнь, связавшись с питоном.
Питон -- хороший. Он зачастую облегчает жизнь. Вот понадобилось мне написать простой конвертер картинок в jpg без использования Фотошопа - написал за 90 строк вместе с UI и поддержкой драг-энд-дроп. Через Imagemagick конвертит шустро и именно так, как мне надо.
 
Питон -- хороший. Он зачастую облегчает жизнь. Вот понадобилось мне написать простой конвертер картинок в jpg без использования Фотошопа - написал за 90 строк вместе с UI и поддержкой драг-энд-дроп. Через Imagemagick конвертит шустро и именно так, как мне надо.
Ну не знаю, я б на си написал если б нужно было ;) Но это вопрос религии
Тут другое - если задача целиком индизайновская, нафига питон приклеивать на живую нитку?
 
Статус
Закрыто для дальнейших ответов.