<
  • Главная
Статьи

Скриптинг в InDesign, або Верстка для ледачих

  1. У попередніх статтях (у 2004 р - «Скрипти під Illustrator: геть рутину!»,? 7, с. 92 ; «Візитка...
  2. Що далі?
У попередніх статтях (у 2004 р - «Скрипти під Illustrator: геть рутину!»,? 7, с. 92 ; «Візитка на конвеєрі»,? 8, с. 80 ; «Мал золотник, да дорог»,? 10, с. 88 ; 2005 - «Календар на автопілоті»,? 6, с. 72 ) Ми на прикладах з практики розбиралися зі скриптинга під Illustrator. Тепер на черзі InDesign - кількість операцій, що чекають своєї автоматизації, при верстці не менше, аніж у векторному пакеті.

Скриптинг як засіб швидкого виконання великого обсягу рутинної роботи - річ незамінна. Зрозуміло, в дизайнерських програмах, наприклад, Photoshop і Illustrator CS, вона не може проявити себе в повній мірі: дизайн - процес творчий, рутини в ньому не так вже й багато. Зате верстальний пакет, такий як InDesign, - прекрасний кандидат для застосування скриптів. Великі обсяги тексту та ілюстрацій, численні графічні елементи оформлення, зв'язку з зовнішніми джерелами - все це диктує автоматизацію завдань саме при складанні публікацій. Можна сміливо стверджувати, що підтримка скриптинга - одне з головних переваг InDesign перед QuarkXPress, яке відіграло важливу роль при переході верстальників в табір Adobe.

Документацію по скриптам для InDesign см. http://partners.adobe.com/public/developer/ indesign / devcenter.html і http://www.adobe.com/products/indesign/pdfs/ indesign_cs_scripting_guide.pdf . По повноті опису об'єктів останній документ дещо поступається опису Illustrator. Це ускладнить написання першого скрипта, але властивості і методи роботи описані дуже докладно. На базовому рівні функціональність скриптинга в InDesign цілком адекватна Illustrator - той же об'єктно-орієнтований підхід, повний набір операцій зі своєю специфікою, та ж гнучкість, що дозволяє оперувати елементами публікації і текстом. Щоб не повертатися до основ скриптинга в продуктах Adobe, пошлюся на Publish? 7, 2004, с. 92 . Але скриптинг в InDesign просунувся далеко за рамки базових можливостей автоматизації дизайнерських програм.

По-перше, значно розширені інтерфейсні можливості. В Illustrator можна створювати власні вікна діалогу, і вихід з положення - використовувати обмежені можливості JavaScript. А в InDesign створюються діалогові вікна будь-якої складності (навіть з підгрупами елементів). У них присутні різні типи кнопок (в т. Ч. Радіо), спливаючі списки та інші елементи «красивого» життя, що спрощують дизайнеру управління скриптом. Але діалоговими вікнами доцільно користуватися тільки в складних скриптах, які потребують маси параметрів. У більшості ж завдань досить стандартного вікна запиту, знайомого по JavaScript і докладно описаного в тій же статті. Спрощується сам скрипт, підвищується його читабельність.

По-друге, в InDesign адекватно важливість справ розвинений механізм автоматичного перенесення публікації на іншу платформу - наприклад, для розміщення в Мережі (через XML), в т. Ч. З збереженням інтерактивності (за рахунок підтримки подій типу mouseIn і mouseOver). Це реалізація концепції Create once, ready everywhere - одного разу створений документ без проблем адаптується до будь-якого виду.

Як і для Illustrator, для InDesign можна писати скрипти на будь-якому з трьох мов - Visual Basic (для шанувальників продукції Microsoft), AppleScript (Mac OS) і переносних незалежному універсальному JavaScript, добре відомому веб-майстрам. Для двох перших в InDesign є додаткова зручність: для будь-якого об'єкта вибирається бажане дію зі списку операцій. При орієнтації ж на JavaScript вам доведеться грунтовно вивчити довідкове керівництво. Якщо ніколи не займалися програмуванням, ознайомтеся з основами скриптинга в згаданій вище статті. Хоча в ній розглядається механізм Illustrator, неспеціаліст легко розбереться в базових поняттях, що полегшить міграцію на InDesign.

Взаємні зв'язки між типами об'єктів добре узгоджуються з відносинами в Illustrator, але мають специфіку. Об'єкт вищого рівня - сам InDesign, в ньому може бути відкрито одночасно кілька документів, один з яких - активний (activeDocument). Потім градація йде по об'єктам, розташованим безпосередньо на сторінках (або розворотах) і окремо - на монтажному столі (pasteboard). Багато об'єктів InDesign існують в двох іпостасях: пов'язані з поточним документом (набір зразків кольору, стилі абзаців, окремих символів і друку, шрифти) і мають більш високий рівень - додатки, які не залежать від конкретного документа. До останніх відносяться настройки відображення публікації на екрані, мова та ін. Цікаво, що з зовнішніми джерелами можна працювати, як з Image (якщо растровий об'єкт) або EPS і PDF.

Механізм скриптинга дозволяє звертатися до будь-якого місця в публікації, причому не тільки в текстовому контейнері, але і в таблиці, до графічних елементів, котрі спрямовують. Це знімає обмеження на управління деякими об'єктами, що існують в Illustrator CS. Розробники приділяють скриптингу саме під InDesign багато уваги, звідси менше недоліків в порівнянні з векторним редактором. А ось підключити бібліотечні файли, як в Illustrator, на жаль, не можна.

Мета статті - не навчити скриптингу, а зацікавити написанням власних скриптів. Кращий спосіб - розглянути кілька типових задач верстальника. Виберемо щодо нескладні - на них ви відчуєте, як це робиться, а пізніше, освоївшись з механізмом скриптинга під InDesign, вам буде легше перейти до складних питань.

Видалення квітів, стилів символів і абзаців

В принципі, таке очищення перед передачею публікації на висновок робити необов'язково, але це свідчить про високу культуру робочого процесу і в цеховому співтоваристві вважається хорошим тоном. Попутно очистимо публікацію від порожніх текстових фреймів і містять тільки пробіл або абзац.

Зрозуміло, в кінці роботи скрипт повинен видавати звіт про внесені зміни. У початковий момент їх немає (CS - скорочення від characterStyles, PS - paragraphStyles, TF - textFrames):

deletedCS = 0; deletedPS = 0; deletedSwatches = 0; deletedTF = 0;

Для скорочення розміру скрипта будемо використовувати посилання на батьківський об'єкт для всіх що беруть участь елементів - на відкритий документ:

aD = app.activeDocument;

До невживаних квітам в скриптовой моделі InDesign можна дістатися через спеціальний об'єкт unusedSwatches. Таким чином, нам достатньо спочатку перевірити, чи присутні такі кольори в публікації (властивість length «кількість»> 0), і якщо так, то по черзі їх видаляти і заодно вести облік:

uSw = aD.unusedSwatches; if (uSw.length> 0) {for (i = 0; i

З квітами розібралися. Шукати невикористовувані стилі тексту будемо інакше: для таких елементів в InDesign немає методу, подібного розглянутому вище. Використовуємо можливості пошуку стилів, що існують у вікні пошуку / заміни (Find / Change), - в скриптовой моделі для цього є спеціальний об'єкт findPreferences. Всі стилі публікації можна дізнатися через aD.characterStyles; по черзі будемо їх перебирати і паралельно шукати відформатований ними текст. Якщо пошук нічого не дав, значить, стиль в публікації не використовується, і його потрібно видалити. Для звітності ведемо підрахунок віддалених стилів.

for (i = 1; i

Рядок app.findPreferences = null необхідна для скидання попередніх параметрів пошуку, інакше можуть залишитися значення в тих полях, які в новому пошуку не використовуються. Аналогічно діємо, видаляючи невживані стилі абзаців:

for (i = 1; i

З першою частиною скрипта розібралися. Що стосується другої (пошук порожніх текстових контейнерів), то скористаємося методом «contents», що дозволяє працювати з вмістом textFrames. Якщо контейнер порожній і не має кольору (це перевіряти обов'язково, оскільки часто кольорові текстові кадри використовуються в дизайнерських цілях), він видаляється; заблокований доведеться попередньо розблокувати.

tF = aD.textFrames; for (i = 0; i

Замість конструкції if ((tF [i] .contents == "") || (tF [i] .contents == "")) і т. Д. З довгим переліком умов перевірки скористаємося спрощеним способом - через оператор switch / case , а службовий символ «\ r» позначає символ абзацу.

В кінці виводимо звіт про роботу:

alert ( 'Deleted: \ n' + deletedCS + "unused CharacterStyles \ n" + deletedPS + "unused paragraphStyles \ n" + deletedSwatches + "unused swatches \ n" + deletedTF + "deleted empty text frames").

Як бачите, все просто. Скрипт remove_unused.js можна завантажити з сайту: www.publish.ru. Щоб InDesign його розпізнав, помістіть в папку C: \ Program Files \ Adobe \ Adobe InDesign CS \ Presets \ Scripts.

Що далі?

Одне із завдань, де також в повній мірі проявляється користь від скриптинга, - створення каталогів з продукцією, коли з заздалегідь підготовленої і ретельно вивіреної бази даних скрипт бере інформацію і вставляє в відповідні місця в публікації (контейнери з певними ідентифікаторами). Все виконується дуже швидко, і ризик отримання помилки в порівнянні зі звичайним способом зведений до мінімуму. Аналогічний підхід можна використовувати і при друку змінних форм, економлячи на придбання спеціалізованих рішень від Datalogics, Em Software, Sansui Software або XMPie. Інша сфера використання скриптинга - форматування: наприклад, оформлення деяким чином першого слова в усіх статтях публікації (наприклад, усіма великими) або вставка певного значка в кінці.

Автор недавно автоматизував завдання складного форматування списків використаної літератури в одному науковому журналі - номер джерела повинен був бути виконаний звичайним шрифтом, автори - курсивом, а все інше - знову звичайним. Раніше подібна задача вирішувалася написанням відповідного макросу в Word з подальшим впровадженням вже підготовленого тексту в XPress, тепер же все робиться прямо в пакеті верстки. А взагалі, завдань, що вирішуються за допомогою скриптинга, безліч. Людина створена для творчості, а не для рутини. Давайте доручимо її комп'ютера.

Про автора: Михайло Борисов ( [email protected] ), Пише для Publish корисні поради з додрукарської підготовки та огляди ПО.

»,?
Що далі?
»,?
Що далі?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью