Как пользователю Macintosh автоматизировать спуск полос с помощью AppleScript, говорилось в Publish ? 2, 2003. Я хочу рассказать, как сделал это в среде Windows.
Всякий раз, как компания Apple придумывает для своих компьютеров какую-нибудь милую штучку, приверженцы Windows предвкушают что-то похожее и даже лучше. Но вот с AppleScript не получилось. Единого, стандартного средства автоматизации для РС нет. Вместо этого Microsoft предлагает использовать для своих программ Visual Basic. Другие производители либо пошли по её стопам (как Corel), либо создают что-то своё (как Adobe в Photoshop). Но даже два Бейсика, на которых можно программировать в Microsoft и Corel, хоть и называются одинаково, имеют заметные отличия. Ведь надо знать не столько основы языка (и в самом деле общие), сколько ряд специфичных команд. Пользователь должен изучать язык программирования, не имея уверенности, что для другой программы не придётся учить нечто другое…

Неудивительно, что мне захотелось найти универсальное решение. Я потратил несколько недель на поиски в Интернете и пробы различных решений, после чего остановился на утилите AutoIt. Она распространяется бесплатно на сайте http://www.hiddensoft.com/autoit/.
![]() |
Щелчок правой кнопкой по «иконке» позволит приостановить или отменить выполнение скрипта |
Поскольку я собираюсь говорить о сильных сторонах утилиты, начну с недостатков. Вернее, с одного, но серьёзного: утилита не позволяет что-либо делать во время выполнения сценария (скрипта). Нельзя даже касаться руками мышки! Можно лишь попить чайку, посматривая, как идёт работа. Дело в том, что программа как раз двигает и щёлкает за вас мышкой, нажимает клавиши в том порядке, который ей задали.
Разложить по тетрадям
Передо мной стояла задача подготовить к выводу плёнок издание объёмом более тысячи страниц, тетрадками по 32 страницы, по 8 на печатном листе. Иначе говоря, каждая тетрадка должна была печататься как два листа «с чужим оборотом».
Решение было найдено: ставить страницы в спуск, предварительно сохранив как EPS. Я создал файл-шаблон для одной тетрадки. Одну тестовую страницу записал и скопировал 32 раза с именами Page1.eps, Page2.eps … Page32.eps. Эти файлы расставил в соответствии с раскладкой. В свойствах файла (Edit/Preferences/Document) значение Auto Picture Import установил On. Затем закрыл файл, а тестовые EPS-файлы удалил.
Предполагался следующий план. В каждой тетрадке EPS-файлы должны иметь те же имена, что и тестовые. Для этого каждый набор EPS-файлов размещается в отдельной папке. Затем в неё копируется созданный файл-шаблон. При его открытии QuarkXPress, не обнаружив старых EPS-файлов, автоматически заменяет их на файлы текущей папки. Остаётся лишь послать спуск на печать.
Самая трудоёмкая и чреватая ошибками часть плана — дать правильные имена файлам и разложить их по папкам. Именно она и была автоматизирована. Код созданного сценария SaveAsEPS.aut приведён во врезке. Он снабжён комментариями справа от команд, которые не следует набирать, если вы захотите его проверить. Комментарии в скрипте допускаются только в виде строки, начинающейся c символа «;».
Немного об утилите. Никакого интерфейса для написания скриптов она не имеет, поэтому создаются они в любом текстовом редакторе. Конечному файлу даётся расширение .aut (важно, чтобы установки Windows позволяли явно задавать расширение). Когда сценарий написан и сохранён, после его запуска двойным щелчком мыши, рядом с часами в правом нижнем углу экрана появляется значок в виде серой буквы «А» на чёрном фоне. Это означает, что сценарий начал выполняться и можно отдохнуть.
Используемый AutoIt язык оригинален, но очень прост. Список всех команд легко найти в файле контекстной помощи. При отладке я понял, как важно не спешить. Если нажать клавишу прежде, чем возникнет окно запроса, Quark может просто проигнорировать ввод. Такого не случается, когда работаешь руками, но сценарий ведь делает это быстрее! Здесь пригодились команды WinWaitActive (ждёт появления нужного окна) и Sleep (пауза). Огорчило отсутствие арифметических команд. Простая формула pageN = (spusk-1) * spuskN + firstPage занимает четыре строки и совсем не похожа на формулу!
Когда я уже выполнил спуск с помощью скрипта, появилась необходимость внести коррективы в некоторые страницы. Тут-то я и оценил автоматизацию по достоинству!
Выигрыши
Время работы скрипта не меньше времени работы верстальщика. Выигрыш не в скорости, а в избавлении от скрупулёзной и монотонной работы. И конечно, лучший способ застраховаться от ошибок в нумерации файлов, которые при большом объёме работы неизбежны.
Об авторе: Сергей Матвеев (nekstati@pisem.net), независимый автор.