Athena: Точный экспорт веб-страниц в PDF
Мне потребовалось выдать заказчику нашу документацию по API, сгенерированную из Open API.
Когда я попробовал экспортировать сгенерированные в bootprint-openapi страницы с помощью pandoc или через импорт в MS Office или Libre Office, на результат нельзя было смотреть без слез - поехавшие или вообще исчезнувшие таблицы. Возможно, это было из-за бага в bootprint-openapi который я позднее нашел и поправил, теперь уже не выяснить.
Ковыряться в bootprint-openapi, чтобы попытаться создавать такой html, который будет конвертироваться без глюков, казалось совершенно бесперспективным и тяжким по времени занятием (я форкнул bootprint-openapi для русификации, но одно дело перевести на русский handle bars, что заняло не более получаса, и другое - ковыряться в html и css).
И тут я нашел совершенно изумительную вещь Athena Elegant PDF conversion.
Изумительна она по двум причинам.
Во-1х она безукоризненно конвертирует веб-страницы в PDF. Все выглядит точно, как в веб-браузере, что и не удивительно, потому что она вызывает браузер и снимает картинку с него.
Во-2х ребята все сделали для того, чтобы их продукт было чрезвычайно легко использовать.
Хотите сервис, который конвертирует на лету - ок:
Мне было рациональнее конвертировать файлы заранее (athena работает достаточно быстро, но это все-таки долгие 1-2 секунды на конвертацию каждого из моих файлов).
Поэтому я добавил в Makefile:
Немного огорчает, что из нее сыпятся ошибки
Но это никак не влияет на результат, поэтому я не стал разбираться, с чем это связано.
И еще надо учитывать вот этот баг в Electron, на котором написана Athena Duplication of thead, and other table related issues
Я это делаю так:
Не устаю восхищаться docker, который сделал это возможным - одна строка (две, с учетом workaround для бага) и непростая задача решена!