С самого начала создания вебгенераторов я ставил цель — отображать настоящее превью PDF-файла. Никакие тонкие настройки стилей на странице, никакие предварительно созданные фоны не могут обеспечить качество. Тем более макеты меняются.
Я уже писал в 2020-м году про создание растрового превью, но сейчас PDF-файлы на выходе могут весить несколько мегабайт, и создание превью из него может занимать несколько секунд. Особенно это стало сложно с появлением возможности склеивания PDF-файлов.
Переименовал канал (раньше он был AdobeScript). Ну потому что уже давно я занимаюсь не только скриптами в Адобе.
Точнее даже так: мы стараемся всё делать в вебе, и используем Адоб Индизайн или Иллюстратор только при острой необходимости (когда клиент там работает).
Внутри Иллюстратора и Индизайна работают скрипты. Язык их написания называется ExtendScript, это синтаксис JavaScript 1999 года с добавлением объектов из сответствующей программы. То есть в Иллюстраторе есть объекты линий, кистей, стилей и всего прочего, что используется в Иллюстраторе, а в Индизайне есть стили абзацев, объектов, символов и всего остального, что вы видите в панельках Индизайна.
На этой неделе я научился работать с масками в Иллюстраторе: заходить внутрь, доставать оттуда объекты, менять форму маски и даже делать маску несколькими формами. Хотя на протяжении нескольких лет думал, что в Иллюстраторе нельзя нормально работать с ними.
И вот я вдохновлённый решением, наконец, давней проблемы сел программировать. Думаю «может действительно всё можно делать в Иллюстраторе? и это я просто плохо читаю документацию?».
Что делать, если при генерации дизайна объекты накладываются друг на друга?
Сейчас работаю над проектом, где надо генерить элементы по координатам. А ещё в этом проекте есть подписи списков, когда несколько элементов списка имеют один выносной заголовок. И в обоих этих случаях возможны наложения элементов друг на друга.
После создания генератора указателей дорог, захотелось сделать что-то с символами. И тут мне на глаза попался пост Серёжи Рассказова про новый шрифт Finlandika, специально созданный для навигации Финляндии. Мне так понравился этот шрифт, что решил сделать генератор финских туристических указателей. А главное — добавить себе, наконец, функционал для работы с пачкой векторных форм.
В проекте «Генератор дорожных указателей» встречается шаблон с наклонной правой стороной — это указатель направления съезда. В гайде по этому знаку указан угол наклона — 70 градусов и угол наклона. Определив ширину знака по его содержимому, можно без проблем рассчитать точки будущей трапеции. Но после этого необходимо скруглить углы трапеции.
Казалось бы — такая простая задача: закруглить углы у многоугольника. Тем более, что производить это надо в таком мощном графическом редакторе, как Иллюстратор. Но проблема кроется в том, что скругления углов нет в скриптах для Иллюстратора.
В проекте генерации уличных табличек нужен был простой и быстрый механизм ввода улицы и номера дома. И хотелось сразу видеть примерный внешний вид будущей таблички. Но так как все макеты вариативны — то есть размер зависит от содержания — решение этой задачи пришло не сразу. И если разная ширина знака — это решаемая задача, то разные стили в одной строке стали камнем преткновения.
Попробовав 3 варианта отображения превью, я теперь знаю почти все плюсы и минусы разных решений. Для разработки будущих табличек или знаков этот багаж знаний и наработок, конечно, пригодится.
Все мы знаем, что Иллюстратор может «упасть». Все мы не раз доставали документ из бэкапов, который сам Иллюстратор регулярно делает. Все мы ругали Иллюстратор и самих себя, когда не сделали дополнительную копию документа.
И тут я вспомнил случай, когда именно нажатие «Сохранить» привело к безвозвратной потери содержания документа. Уверен, что вы не столкнётесь с подобной ситуацией, но опыт интересный.