Переменные данные в Adobe Illustrator

Работа многих дизайнеров однообразна. Адаптировать листовку от звездного дизайнера под контактные данные филиалов компании, вставить кучу фотографий в шаблон визитки, экспортировать пригодные для печати графики с отчетностью за день. Все это требует много времени, сил, и не приносит никакого удовольствия. Обычно дизайнеры предпочитают творить, нежели заниматься вырезкой/вставкой контента. К счастью, Illustrator позволяет динамически изменять объекты в макете и экономить нам кучу времени, как и inDesign. Давайте изучим эту не очень популярную функцию.

Во первых, вам нужно разработать дизайн-шаблон, состоящий из связанных (linked) изображений, текста, графиков или прочих объектов. Каждый из этих объектов вы также сможете скрыть/показать при работе с переменными данными в Illustrator.

Динамические данные в Illustrator
Динамические данные в Illustrator

 

Теперь назначим переменные. Выберите объект, который Вы хотите сделать динамическим, откройте панель Variables. Нажмите кнопку Make Object Dynamic для создания cвязанной переменной (Linked File variable) или кнопку Make Visibility Dynamic в палитре Variables. Как вы понимаете, если вы используете текстовую строковую переменную, то и меняться будет текст в текстовом объекте.

Переменные определяют признаки динамических объектов и могут быть следующих типов:

  • Graph Data (Данные для графика) — позволяют создавать графики;
  • Linked File (Связанный файл) — предназначены для создания динамических изображений, которые связаны с файлами картинок или других прилинкованных документов. Обязательно через File=>Place;
  • Text String (Текст) — создание динамического текста;
  • Visibility (Видимый) — видимость объекта или группы объектов. В XML файле она будет меняться параметрами true/false.
  • Тип не задан — вы зададите тип в дальнейшем. Тип объекта в любом случае будет присвоен.

Когда вы создаете переменные, желательно их переименовывать. Переменная 1 — ужасное название, а вот name_person уже выглядит куда понятнее. Вы можете назначить на объект две переменные, если одна из этих переменных Visibility.

Нажмите кнопку Capture data set в палитре Variables, чтобы зафиксировать данные переменных, отображенных на холсте. И затем выберите Save Variable Library из меню палитры Variables. Получаем XML-шаблон, который клиент должен заполнить.

Создание динамического текста в Illustrator
Создание динамического текста в Illustrator

А теперь представим, что мы находимся на стороне клиента, и заполнять все это безобразие придется нам же. Можно пойти к программисту, показать созданный XMLник, рассказать что к чему. Программист привяжет переменные и наборы данных к имеющейся базе данных, и экспортирует все в подходящем виде. Вы вернетесь в панель Variables, выберите Load Variable Library, и загрузите отредактированную библиотеку переменных. Но, к сожалению, этот вариант получения XML редко удается осуществить. В большинстве случаев заполнять данные в нужном формате вы будете собственноручно.

Уверен, вам отдадут простой файл формата Excel/CSV, со словами, что менеджеры слишком заняты и не собираются решать проблемы дизайнеров. Многие ушлые умы сразу прикинут, что в этом случае можно по старинке использовать XML, экспортированный из FileMaker Pro. Этот способ работает в InDesign, но не с Illustrator, и придется поработать ручками в Excel. В Excel важно обратить внимание, что названия первой строки это названия переменных для Illustrator’а. Сохраняем файл в формате ods, csv, либо xls. Далее нам нужно конвертировать полученный файл в XML, так как Illustrator не умеет обрабатывать ничего другого. Идем на онлайн-сервис (которых много), и методом копипаста создаем себе XML файл.

Загнать данные в Illustrator можно и с помощью этого замечательного скрипта. Скрипт мне представляется наиболее хорошим способом перегнать данные, ведь он позволяет сохранить XML из CSV / TXT, работает со всеми типами данных, в том числе true/false для видимости объекта.

В итоге, каким бы способом для генерации XML мы не действовали, нужно загрузить полученный XML обратно в программу. И если все сделано правильно, в окне variables станут активны стрелочки для переключения между подгруженными данными.

variable_illustrator

Теперь нам придется воспользоваться пакетной обработкой (batch). Для начала имена объектов должны соответствовать соглашениям об именовании XML, так что проследуйте в настройки и поставьте вот такую полезную галочку.

setting_illustrator

Щелкая кнопку Next data set в палитре Variables, убедитесь, что все данные легли в шаблон красиво и аккуратно. Мы будем использовать пакетную обработку, чтобы сохранить каждую визитную карточку. Но сначала, мы должны создать действие (action), которое сохранит работу в необходимом формате с правильными настройками для печати.

По окончании работы сохраните шаблон в формате SVG, воспользовавшись командой File=>Save As (Файл=>Сохранить как). Это нужно для продолжения работы в других продуктах Adobe, например Adobe® Graphics Server, и тогда разработчик сможет связать напрямую данные сервера и ваш макет. Для этого нужно в настройках при сохранении поставить галочку «Включить данные Adobe Graphics Server».

Создадим Actions. Все действия аналогичны созданиям экшена в Photoshop. Нажмите New Action button. Введите название вашего экшена, и нажмите Record. Сохраните шаблон в желаемом формате и прекратите запись экшена. Теперь нам нужна пакетная обработка. Выберите Batch в диалоговом меню палитры Action и выберите наш свежесозданный экшен.

Пакетная обработка в Illustrator
Пакетная обработка в Illustrator

Для Source выберите созданный Data set. Для Destination выберите None, и определите имя файла в File Name. Нажмите OK, чтобы запустить пакетную обработку. Готово, вы сохранили себе пару часов времени и освоили variables illustrator, поздравляю.

Вы можете создавать более продвинутые скрипты. Например, на текущем месте работы я разработал скрипт для перевода макетов на другой язык. Из Adobe Illustrator перегоняется текст в Excel. Один клик генерирует таблицу Exсel с текстом из макета, после перевода таблица загружается обратно в Adobe Illustrator и весь текст заменяется на переведенный.

7 комментариев

  1. Евгений

    Доброй ночи, срочный вопрос. Как правильно обмениваться данными между Illustrator в другим софтом?

    • your-scorpion (Author)

      Настройки illustrator: включите AICB и Preserve Path в File Handling Preference, это предпочтения для буфера обмена. Без этой галочки файлы будут вставляться в другие редакторы как bitmap. Если нужно увидеть превью файла после импорта в другую программу, сохраните с галочкой Create PDF Compatible File. Эта галочка спасла много жизней: если ваш прилинкованный .ai файл был утерян, то до тех пор, пока импортированный файл содержит PDF превью, вы сможете его вытащить и использовать как картинку.

      inDesign: если хотите вставить редактируемый текст, в inDesign выберите Preferences -> Clipboard Handling и выберите Text Only (без форматирования). Либо выберите All Information в том же меню, если нужно сохранить appearance, паттерны, прозрачность, стили из Word. Подберите подходящие вам настройки и сохраните отдельно для doc и для rtf.
      При импорте файла можно нажать галочку Show Import Options и с помощью Object -> Object Layer Options и выбрать, какие слои отображать (работает с форматами psd/pdf/ai/indd).

      В Photoshop: не умеет импортировать векторную графику. Единственный путь которым вы можете получить кривые это буфер обмена. Меньше проблем возникает, если импортировать сложные данные как Smart Object с последующим добавлением Smart Filters. Тогда можно работать без деградации пикселей.
      Из Photoshop: для сохранения редактируемого текста, откройте Illustrator’ом файл PSD или с помощью File -> Place без галочки Link. И поставьте галочку Convert to Layers. Adjustment layers в illustrator импортировать нельзя, нужно объединять слои. Почитайте более подробный гайд в разделе «из Photoshop и обратно».

      Если нужно будет сбросить настройки к заводским, зажмите во время старта программы Cmd-Opt-Ctrl-Shift для MacOS или Alt-Crtl-Shift для Windows.

      Текстовые редакторы: стандартный общепринятый вариант это сохранить .doc в .docx, а потом обратно в .doc. Потом можно сохранить в .rtf и после скопировать в нужный редактор с помощью Ctrl+D. Если не помогло, то скопировать весь текст в docs.google.com, и пересохранит оттуда как .docx или .rtf.

      Если начинаются проблемы, то попробуйте скрипт DoTextOk. Принудительные переносы (31-й символ ASCII) в режиме TextOnly из Preferences -> Clipboard Handling не переносятся. Если переносить текст через копипаст, то переносы перенесутся как дискреционные.

  2. Максим, привет! Подскажи, пожалуйста, есть ли возможность из одного файла в отдельности сохранить все имеющиеся в нем объекты (которых более 100)? Собственно, как сохранить ВЫБРАННЫЙ объект через Action — понятно, но там нет возможности научить программу ВЫБИРАТЬ отдельно эти объекты. Перелопатил весь рунет, но так и не нашел ответа. В твоей статье нашел много интересного, но все же задача стоит немного другая. Спасибо!!

    • your-scorpion (Author)

      Все имеющиеся объекты расположены хаотично, или структурированы на разных слоях/артбордах? Сохранить в какой формат?

      Если хаотично, выделите все объекты, и выберите в панели Align -> Horizontal distribute space. Это позволит разместить все объекты друг за другом с одинаковым интервалом. После этого нужно создать много артбордов для объектов. Артборды можно делать из квадратных shape. Создайте столько же квадратов, сколько объектов вам нужно экспортировать (для этого хорошо подойдет Blend Tool). И примените к квадратам функцию Object > Artboards > Convert to Artboards, вы получите артборды.

      В результате проделанных действий у вас будут артборды, и внутри них объекты. Осталось использовать скрипт для экспорта слоев и артбордов. Либо File -> Export -> Export for screen.

      • СпасибО! Как раз воспользовался этим вариантом. Правда объектов более 100, поэтому пришлось в два этапа сохранять, но все равно экономия времени.

  3. Евгений

    Доброго времени суток.

    Когда экспортирую варианты пакетной обработкой (что «Экспорт — JPG», что «Сохранить копию — PDF), Иллюстратор просто поочерёдно перезаписывает один и тот же файл.

    Что я делаю не так?

    http://i.imgur.com/0MK5MRO.png

    • your-scorpion (Author)

      Причин может быть много.
      Но почти наверняка: поставьте галочку «Override Action “Save” Commands». У вас этот чекбокс называется «Игнорировать команды Открыть».

      Также, попробуйте в окне «Пакетной обработки» указать папку, куда сохранять файлы.