iPhones.ru

Праздничный лайфхак для Photoshop

Ирина Чернова avatar | 13
FavoriteLoading В закладки
Праздничный лайфхак для Photoshop

Как из шаблона автоматически генерировать тысячи уникальных именных открыток.

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

Как поступит обычная девушка офис-менеджер? Она выпьет три чашки эспрессо, подпилит ногти покороче, соберется с духом и будет делать все руками: открывать шаблон, печать имя клиента, сохранять результат, закрывать шаблон. Если дама умеет пользоваться горячими клавишами, то к утру успеет. Но нанесет вред своему здоровью и репутации компании, cделав множество ошибок.

Что сделает офис-менеджер 80 лвл? Она зайдет на iphones.ru, прочитает эту простую инструкцию, через полчаса получит готовые открытки, еще пару часов будет заниматься личными делами, имитируя бурную деятельность, а после покажет шефу досрочно полученный результат.

Эта статья раскроет один из секретов продвинутых офисных работников. Просто открывайте Photoshop и четко следуйте инструкции. Попробуйте прямо сейчас!

Инструкция

1. Подбираем шаблон для открытки

Для выполнения этой инструкции необходим шаблон поздравительной открытки для Photoshop. Его можно нарисовать самому или скачать из интернета (они представляют собой файлы в формате .psd). В сети есть очень много подобной графики, платной и бесплатной.

Для удобства читателя дадим ссылки на подборки бесплатных открыток, рамок и клипартов к различным праздникам:

В нашем примере будем использовать вот эту картинку.

2. Редактируем шаблон

Распаковываем архив, открываем файл christmas-greeting-card.psd в Photoshop, заменяем «Merry Christmas» на традиционное русское поздравление и удаляем лишний текст:

blank_tamplate

Сохраняем шаблон и кладем его в корень папки текущего пользователя:

save_in_root

3. Выбираем место для надписи

Теперь прикинем, куда будем печатать имя человека. Выбираем указателем мыши нужную точку и зафиксируем ее координаты. Они отображаются на панели, которая включается с помощью пункта меню Windows -> Info:

point_coors

Значения X и Y надо куда-нибудь записать. Эти цифры нам скоро пригодятся.

4. Создаем список адресатов

Сделаем в Excel/Numbers/Google Spreadsheets вот такую таблицу:

table2

В первый столбец запишем порядковые номера адресатов, а во второй обращения к ним.

В первую ячейку третьего столбца записываем вот такую формулу и протягиваем ее по всей высоте столбца:

=”contactName[“&A1&”]='”&B1&”‘;”

5. Готовим папку для открыток

В корневой папка текущего пользователя создаем папку с именем cards. В нее будут сохраняться готовые открытки.

6. Код

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

По умолчанию, в Photoshop нет собственного редактора скриптов, поэтому открываем текстовый редактор (Notepad, Notepad ++, Sublime) и вставляем в него следующий код:

[jscript]
var originalUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
var contactName = new Array();
[/jscript]

Теперь копируем в буфер обмена содержимое третьего столбца таблицы из четвертого пункта инструкции:

[jscript]
contactName[1]=’Никита Горяинов’;
contactName[2]=’Артур Малосиев’;
contactName[3]=’Роман Юрьев’;
contactName[4]=’Юрий Андреев’;
contactName[5]=’Артем Суровцев’;
[/jscript]

Теперь еще кусочек кода:

[jscript]
for(i=1;i<=contactName.length-1;i++)
{
[/jscript]

А под ним вот эту строчку. Обратите внимание, что здесь нужно указать путь к файлу шаблона. Если вы работаете под Windows, то «~/christmas-greeting-card.psd» надо заменить на что-то похожее на «С:/Users/Irina/christmas-greeting-card.psd», только с вашим именем пользователя.

[jscript]
// Открываем файл шаблона
var fileRef = new File("~/christmas-greeting-card.psd");
[/jscript]

Еще кусочек:

[jscript]
var docRef = app.open (fileRef);
//Добавляем текст
var artLayerRef = docRef.artLayers.add();
artLayerRef.kind = LayerKind.TEXT;
var textItemRef = artLayerRef.textItem;
textItemRef.contents = contactName[i];
[/jscript]

В этой строке не забываем указать местоположение надписи на картинке, с которым мы определились в третьем пункте:

[jscript]
textItemRef.position = [145, 370];
[/jscript]

Добавляем код, который описывает формат текста надписи:

[jscript]
// Размер текста
textItemRef.size= 35;
var fontColor = new SolidColor;
// Цвет текста в формате hex
fontColor.rgb.hexValue = ‘cbff66’;
textItemRef.color = fontColor;
[/jscript]

Если вы используете операционную систему Windows, то «~/cards/» надо заменить на что-то похожее на «C:/Users/Irina/cards/»:

[jscript]
//Сохраняем файл в tiff
tiffFile = new File( "~/cards/"+contactName[i]+".tiff" );
tiffSaveOptions = new TiffSaveOptions();
tiffSaveOptions.embedColorProfile = true;
tiffSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
tiffSaveOptions.quality = 1;
app.activeDocument.saveAs(tiffFile, tiffSaveOptions, true, Extension.LOWERCASE);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
[/jscript]

Сохраняем файл под именем textscript.js. Если вы используете Photoshop CS2, то расширение должно быть .jsx.

7. Запускаем скрипт

В Photoshop открываем пункт меню File -> Scripts -> Browse и выбираем файл textscript.js:

photoshop_launch_scripts

Ждем, когда мелькание окон закончится.

8. PROFIT!!!

Открываем папку cards и смотрим что получилось:

many_card_result

УРА!

Дополнительная информация

Можно не сохранять открытки в папку, а сразу печатать их с помощью метода print(). Для этого надо вот этот кусок кода:

[jscript]
tiffFile = new File( "~/cards/"+contactName[i]+".tiff" );
tiffSaveOptions = new TiffSaveOptions();
tiffSaveOptions.embedColorProfile = true;
tiffSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
tiffSaveOptions.quality = 1;
app.activeDocument.saveAs(tiffFile, tiffSaveOptions, true, Extension.LOWERCASE);
[/jscript]

Заменить вот на этот:

[jscript]
app.activeDocument.print();
[/jscript]

А еще можно сохранять файлы в других форматах. К примеру, в jpg. Для этого заменяем вышеупомянутый фрагмент на:

[jscript]
jpgFile = new File( "~/cards/"+contactName[i]+".jpg" );
jpgSaveOptions = new JpgSaveOptions();
jpgSaveOptions.embedColorProfile = true;
jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpgSaveOptions.quality = 1;
app.activeDocument.saveAs(jpgFile, jpgSaveOptions, true, Extension.LOWERCASE);
[/jscript]

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

Для обучения основам JavaScript можно пройти какой-нибудь онлайн-курс, к примеру на CodeSchool. Эти знания помогут вам при написании автоматизаций не только для Photoshop, но и для других приложений.

Если планируется печать открыток на профессиональном типографском оборудовании, то лучше использовать Adobe InDesign. Кстати. Если вы в будущем решите использовать другие скрипты в приложениях Adobe, рекомендую установить расширение ExtendedScript Toolkit для Creative Cloud.

P.S. Photoshop также понимает скрипты на Visual Basic for Application или AppleScript. Я считаю, что не стоит тратить время на изучения этих языков и лучше сконцентрироваться на универсальном JavaScript. Два аргумента для тех, кто не согласен:

Для написания автоматизаций для MS Office не обязательно знать VBA, JavaScript API for Office и в будущем его возможности будут только расширяться.

А для написания автоматизаций для OS X уже не нужен AppleScript, ведь начиная с версии Yosemite, макросы под Mac тоже можно создавать на JavaScript.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (Проголосуйте первым за статью!)
undefined
iPhones.ru
Как из шаблона автоматически генерировать тысячи уникальных именных открыток. Представим, что вы офисная работница, которой босс дал задание поздравить всех клиентов по почте с каким-нибудь праздником. Вам дали шаблон открытки в формате .psd и сказали, что бы завтра были такие же именные для каждого клиента, которых всего-то 1500 штук. Как поступит обычная девушка офис-менеджер? Она...
Здесь можно оставить комментарий! Для этого авторизуйтесь или зарегистрируйтесь на iPhones.ru.

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

Форум →
  1. totten avatar
    totten 29 декабря 2015
    10

    Как поступит обычная девушка офис-менеджер?
    Она внимательно посмотрит, на полученный от босса шаблон, потом еще раз посмотрит, потом позовёт офис-менеджера 80 лвл, тот тоже посмотри и они оба зададут друг другу вопрос: А почему на ёлке укро звёздочка?
    После этого они позвонят в местное управление ФСБ России: Нет босса – нет проблемы! – это один из секретов продвинутых офисных работников.

    arseniy avatar
    arseniy29 декабря 2015
    0

    @totten, опередили :))
    А если честно-заниматься таким рукоблудием-вообще не дело. Банальный Corel Draw все это делает элементарно и делает это уже очень давно

    Ирина Чернова avatar
    Ирина Чернова29 декабря 2015
    0

    @arseniy, абсолютное большинство красивых открыток доступны в формате PSD, который Corel Draw не открывает. Расскажите, пожалуйста, подробнее, что Вы имеете ввиду?

    arseniy avatar
    arseniy29 декабря 2015
    0

    @Ирина Чернова, как офис-менеджер 87 уровня :)) могу Вас заверить-Корел открывает PSD файлы, а также и подавляющее большинство других графических форматов, легко и непринужденно. А функция, которая делает персонифицированные изделия (в том числе и открытки) называется Print Merge

    Ирина Чернова avatar
    Ирина Чернова30 декабря 2015
    0

    @arseniy, чето у меня не вышло открыть psd в Corel Draw( надо будет разобраться с этим вопросом. Про Print Merge почитала – замечательная вещь. Спасибо!
    Но Corel Draw менее популярная программа, чем Photoshop + стоит в разы дороже (на него нет помесячной подписки) + возможности JS для Photoshop гораздо шире, чем Print Merge.

    arseniy avatar
    arseniy30 декабря 2015
    0

    @Ирина Чернова, используйте функцию Импорт

    Войди на сайт, чтобы ответить
    Ответить
  2. strangesound avatar
    strangesound 29 декабря 2015
    0

    Ну или закинуть в InDesign и сделать Data Merge.
    Думаю менеджер не справится ни с одним из вариантов, набьет вручную)
    150 фамилий минут 10 займет.

    Ирина Чернова avatar
    Ирина Чернова30 декабря 2015
    0

    @strangesound, почитала инструкцию по использованию DataMerge в InDesign. Спасибо за наводку) На мой вкус скриптами все же чуть-чуть проще + больше возможностей для творчества.

    Войди на сайт, чтобы ответить
    Ответить
  3. yurembo avatar
    yurembo 30 декабря 2015
    2

    @arseniy, а ведь автор права, Corel Draw, в отличие от Corel Photo-Paint, не умеет ни открывать, ни импортировать PSD-формат

    arseniy avatar
    arseniy30 декабря 2015
    0

    @yurembo, импортирует https://ru.wikipedia.org/wiki/CorelDRAW#.D0.9F.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.B2.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.82.D1.8B_.D1.84.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2
    Чуть позже скрин сделаю. Я этим занимаюсь ежедневно по несколько раз :)

    Entze avatar
    Entze30 декабря 2015
    0

    @yurembo, ну да.
    Забавно наблюдать за тредами “ой, программа А может это в один клик, а в программе Б надо 3 клика”. Не вспоминая, что программа Б в остальном обгоняет А на годы разработки функциональностей.
    Я не использую все, но я могу в любой момент вспомнить или выучить, а не трахаться целый день.

    Поделки под МС офис vs ванильный, и, к сожалению, лучше под Win.

    Войди на сайт, чтобы ответить
    Ответить
  4. nozhenko avatar
    nozhenko 30 декабря 2015
    1

    Божечки перепись «дЕзайнеров» в комментах.

    вы разницу между векторной и растровой графикой понимаете например? а то что корел и мак это даже не смешно?

    Войди на сайт, чтобы ответить
    Ответить
  5. yurembo avatar
    yurembo 31 декабря 2015
    0

    @arseniy, ок, признаю свою ошибку, вот скриншот:

    yurembo Дек 30 2015 в 3:42 PST

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.