🔥

Тред (Влад Шилов)


В 2016 году, когда велась работа над MVP нашего продукта, ребятам был нужен быстрый и легкий способ внедрить генерацию PDF, при этом не вводя другие технологии, языки и т.д. 👇

Бекенд resume.io работал и работает на Rails, поэтому ребята нашли гем Wicked PDF, который генерирует PDF на основе HTML+CSS, что идеально нам подходило.
notion image

Wicked PDF — это ruby-обертка над CLI-инструментом wkhtmltopdf, который под капотом работает с Qt Webkit. Последний стал для нас причиной проблем, но об этом позже. wkhtmltopdf.org
notion image

Быстро были сверстаны несколько HTML-шаблонов для резюме, которые рендерились рельсами как обычные view, и в 2016 вышло MVP, которое работало так: юзер регистрировался, поэтапно заполнял резюме, а потом нажимал "Download" и только тогда видел какое резюме у него получилось.
notion image

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

Оказалось, что многие CSS-свойства в Wicked PDF работали неправильно. Например, letter-spacing не работал вообще, а flex поддерживался не полностью. Часто были проблемы с отрисовкой кастомных шрифтов.
notion image