Картинка в полосе? (AppleScript, CS3, CS4)

Статус
Закрыто для дальнейших ответов.

apg_777

Топикстартер
15 лет на форуме
Сообщения
278
Реакции
81
Элементарный вопрос.
Получить список картинок в верстке не проблема:
set AllGraphics to all graphics of myDocument
А как исключить те фотографии, которые живут на Pasteboard'е и в мастерах?
По родителю искать бессмысленно, потому что родителем может оказаться группа, стоящая на полосе (а картинка при этом далеко за пределами не то, что полосы, но и разворота).
Насчет мастера. Регулярно попадаются InDesign файлы, в мастерах которых остаются левые фотографии, которые в верстке уже не используются; но в общий список они попадают.
И для кучи: Как получить только те картинки, которые используются в заданных полосах?

P.S. Сейчас я тупо сравниваю geometric bounds каждой картинки с координатами полос и собираю в списке только те, которые хотя бы касаются полосы. Правда в этом случае я имею возможность учесть bleed и скриптом предупредить о том, что в типографию уйдет (например) неделенная фотография.
P.P.S. (это к вопросу для кучи) CS4 в предпечатной проверке одинаково замечательно ругается на "неправильные" фото, стоящие на развороте, хотя в окне "links/связи" картинка относится только к одной полосе, а проверка включена только на соседнюю. Как это определяется?
 

apg_777

Топикстартер
15 лет на форуме
Сообщения
278
Реакции
81
Ответ: Картинка в полосе? (AppleScript, CS3, CS4)

Не совсем так :(
Пляска идет от родителя, но это, к сожалению не решает проблему - родитель может быть группой или мастером.
1. Группа. Группируем картинку с с чем-нибудь на полосе и вытаскиваем картинку на поля. Владельцем остается полоса, но при выводе нам до этой картинки нет дела - она не нужна.
Подлянка в том, что InDesign в окне Links (связи) показывает, что эта картинка в PB, а для скрипта она в полосе!
А группа с картинкой тоже может быть в группе и родитель еще дальше уплывает...
2. Картинка может быть на развороте (условно считаем 2 полосы - страницы 2 и 3) в 3-х вариантах постановки: вар. 1. - левая полоса (стр. 2), вар. 2. - правая (стр. 3) и вар. 3. - на обеих полосах. Логично при проверке второй по счету страницы (стр 3) картинка, стоящая на первой (стр 2) никого не интересует. Однако, если картинка стоит на обеих полосах, то нужно учитывать вариант 3. Preflight CS4 (если составить правила) и в этом случае работает как надо, но как это объяснить скриптом?!!! Да еще и для CS3, у которого такого нет!
На всякий случай повторюсь. Скрипт работает. Но хочется избавиться от двух вложенных циклов для ускорения работы и раздражает фраза в Links "PB", а при этом приходтся заново определять нужна картина или нет!
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Картинка в полосе? (AppleScript, CS3, CS4)

Если, конечно, я ничего не упустил, то в CS3-CS4 проблема не решается. Действительно, чтобы определить страницу, нужно идти от объекта по дереву его "родителей" и каждого из них проверять на предмет "не страница ли это?". Одним из родителей будет группа, а группа лежит на странице.
В то же время, в версии CS5 объекту graphic добавлено свойство parentPage, там эта задача решается без проблем.
 

similideus

12 лет на форуме
Сообщения
671
Реакции
349
Ответ: Картинка в полосе? (AppleScript, CS3, CS4)

Если написать что-то вроде
Код:
set AllGraphics to all graphics of first page of myDocument
то должны найтись только изображения, центры которых лежат в пределах страницы.
 

AirGraph

Участник
Сообщения
244
Реакции
21
Ответ: Картинка в полосе? (AppleScript, CS3, CS4)

И для кучи: Как получить только те картинки, которые используются в заданных полосах?

У каждой полосы есть allPageItems, а значит можно получить массив id_ов объектов этой полосы. В массиве allGraphics всего документа содержатся объекты со своими id_ами. Осталось найти те id_ы в массиве allGraphics, которые есть в массиве allPageItems полосы и вы найдете картинки, связанные с этой полосой.

AirGraph.
 

apg_777

Топикстартер
15 лет на форуме
Сообщения
278
Реакции
81
Ответ: Картинка в полосе? (AppleScript, CS3, CS4)

all page items (all spread items) содержит в себе те же проблемы, что и all graphics :(

В то же время, в версии CS5 объекту graphic добавлено свойство parentPage, там эта задача решается без проблем.
Интересно, а parentPage список или число? При постановке фотографии на разворот скрипт должен понимать, что она не обязательно стоит на одной полосе. Но и до CS5 мы пока не добрались.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Картинка в полосе? (AppleScript, CS3, CS4)

скрипт должен понимать, что она не обязательно стоит на одной полосе.
Палитра Links (CS3), например, этого не "понимает". Там идет привязка к той странице, на которой находится бОльшая часть фотографии.
 
Статус
Закрыто для дальнейших ответов.