Листинг 11.23, Установка цветной метки на папку

applescriptContent = 'tell application "Finder"\rset label index of parent of file ' & f_src & ' to 6\rend tell'

app.doScript(applescriptContent, ScriptLanguage.applescriptLanguage)

Первая строка- не что иное, как скрипт на AppleScript (простите за тавтало-гию). В ней управление передается программе Finder (аналог Проводника на платформе Windows), после чего выполняется единственная операция - присваивается необходимый цвет папке, содержащей файл InDesign (6 - порядковый номер зеленого цвета из всего списка цветов для label).

Для запуска скриптов, написанных на других языках (в том числе и на Visual Basic), в InDesign предусмотрен метод doScripto, имеющий два параметра: первый - собственно текст скрипта либо ссылка на файл скрипта, второй - значение, указывающее на использованный в данном скрипте язык, в нашем случае это applescriptLanguage.

Теперь решим заачу несколько посложнее. Допустим, обрабатывается реклама, поступающая в несколько изданий (это ситуация, кстати, отражена в скриптинге). В случае утверждения макета заказчиком соответствующий макет распечатывается. Как Правило, для этого используется один и тот же принтер, в таком случае менеджерам по рекламе, разбросанным по разным комнатам, нужно знать, когда уже можно идти и забирать распечатки - иначе неминуемы постоянные звонки: "А такой-то и такой-то макеты уже распечатаны? А когда можно их будет забрать?" и т. п. Было решено написать скрипт, который бы после распечатки макета отсылал соответствующему ме неджеру уведомление о том, что макет распечатан. Поскольку автор работает на Мае, а скрипт использует межпрограммные соединения, код приведен на applescript (листинг 11.24).

\ Листинг 11.24. Отправление извещения о готовности распечатки

strl = 'tell application "Mail"\rset n to make new outgoing message\rtell n\rset subject to

subj = Название_рекламы уже распечатана на принтере Название_принтера' str2 = "'\rmake new to recipient with properties {address:'" app.doScript(strl+subj+str2+addr+'"}\rend tell\rsend n\rend tell', ScriptLanguage.applescriptLanguage)

Поскольку скрипт занимает несколько строчек, было решено разбить его на несколько читабельных фрагментов, которые потом собираются в одно целое.

Адрес при этом берется из поля Отправитель e-mail сообщения (они также обрабатываются applescript). Или, как вариант, можно создать список менеджеров с их электронными адресами и выводить его на экран перед отсылкой.

Обратите внимание на легкость чтения и понятность выполняемых операций - в этом заключена особая философия, которая свойственна вообще платформе Macintosh.

Удачи в освоении скриптинга!

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ 1

Краткое сравнение синтаксиса AppleScript, JavaScript и VBScript

Данное приложение посвящено обзору наиболее общих сведений о структурах, используемых в программировании (более подробное изложение возможностей одного из языков- JavaScript- приведено в приложении 2). Здесь также приведено краткое сравнение, синтаксиса языков, которые понимает InDesign. Подобная организация позволит в кратчайшие сроки непрограммистам освоиться с новой для них средой, а программистам, практикующим какой-то один язык (как правило, это JavaScript), в сжатые сроки перейти на другой (как правило, на поддерживаемый Macintosh AppleScript).


⇐ вернуться назад | | далее ⇒