Движок JP — быстрое создание PDF в браузерах

10.11.2021

Создание различных макетов на основе данных — самая частая операция при работе с шаблонами. Так почему бы не создавать эти макеты автоматически и прямо в браузере?

Если есть описание макета и многочисленные данные, то зачем заниматься рутиной? Зачем получать постоянные правки об ошибках?

Вам не будет нужна лицензия на продукты Адоба, чтобы создавать многочисленные макеты нажатием кнопки, загружая данные из Гугл-таблиц.

JP — это уникальный быстрый механизм создания PDF-файлов в браузере на основе шаблона.

Движок размещает и выравнивает тексты, разноцветные формы (векторные), растровые изображения.

PDF-файлы могут содержать CMYK- или RGB-цвета. Расстояния указываются в миллиметрах или пунктах.

Элементы шаблонов: тексты, формы или картинки — могут выравниваться относительно документа (абсолютная позиция), относительно друг друга (относительная позиция) или относительно стека (нескольких элементов).

JP написан на JavaScript без фреймворков, легко встраивается на сайт, не требует «сборки» на NodeJS, может выполняться на локальном сервере.

Движок может генерить знаки по одному (из формы) или загружать данные из внешних файлов, например, Гугл-таблиц: можно пройтись по списку скачанных данных, проверить результаты, а потом сгенерить все знаки сразу и скачать ZIP-архив с PDF-файлами.

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

Будущий PDF-файл может быть фиксированного размера или будет рассчитан по содержимому.

Текстовые элементы могут иметь максимальные размеры, чтобы умещаться в ширину: при большем размере текст будет перенесён на новую строку.

Фоном может быть как прямоугольник (со скруглёнными углами), так и совершенно любая форма. Размер фона может быть рассчитан по элементам шаблона.

Каждый элемент шаблона может быть выровнен по любой своей точке (верх, низ, право, лево, середина и так далее) и иметь при этом координаты смещения.

Все формы могут иметь любой цвет (CMYK или RGB) и задаются в шаблоне.

Если вам надо рисовать большое количество однотипных файлов, то движок JP — это идеальное решение: вам не нужна постоянно лицензия Adobe, чтобы получить PDF-файлы, которые подходят для типографий.

Шаблоны могут иметь разные условие: наличие необязательных элементов, условное форматирование, условное выравнивание.

Внутри движка реализовано:

  • единый формат записи цветов: RGB и CMYK;
  • единый формат позиций объектов (абсолютные и относительные);
  • единый формат размеров (абсолютные и относительные);
  • простое добавление текстовых элементов с выравниванием и несколькими стилями в одной строке;
  • добавление текстов как в виде текстовых блоков, так и в «кривых»;
  • выравнивание относительно документа, относительно других элементов, относительно стека (нескольких элементов);
  • простое рисование элементарных форм или по массиву кривых Безье;
  • раскрашивание текстов и форм согласно шаблонам;
  • настройка макета: радиусы скругления каждого из углов, цвет фона;
  • подключение Google-таблиц для генерации сразу нескольких макетов;
  • постоянное развитие возможностей движка за счет новых ситуаций при создании макетов;
  • наличие скриптов и экстеншенов для Adobe Illustrator, чтобы экспортировать макет в веб-интерфейс.

Шаблон — это стандартизованный набор параметров, который хранит настройки всего макета и всех его элементов.

Все элементы макета имеют свои уникальные ключи — slug, по которым происходит применение свойств.

Большинство параметров необязательны и имеют свои значения по умолчанию. Если в шаблоне нет параметров элемента, то они берутся либо из глобального шаблона, либо из самого движка.

Например, все тексты по умолчанию чёрные, выровненные по левому краю и позиционируются по нижней линии букв.

Шаблоны бывают 2 типов: глобальный шаблон и шаблон конкретного макета.

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

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

Если у вас есть желание сделать генератор табличек для своих нужд: адресные таблички, макеты по шаблонам — пишите на электронную почту.