Один язык документов, несколько форматов: как я отделил layout engine от PDFBox и Apache POI

Долгое время GraphCompose выглядел как PDF-движок. Но архитектурно PDF никогда не должен был быть центром системы: разработчик описывает документ на одном языке, движок один раз рассчитывает layout, а подключаемые backend’ы переводят готовую геометрию в нативные объекты нужного формата.
Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.
Источник: Habr