Мое предложение было бы посмотреть на XSL-FO или около того ...
Вы создаете документ XML, который описывает, что вы хотите, и есть различные библиотеки и наборы инструментов (я использовал XEP из RenderX), которые преобразуют указанный XML в PDF.
В реальном выражении то, что мы сделали, взяли большой кусок данных в формате XML, использовали XSLT - действующие шаблоны - для преобразования данных в форматирующие объекты, которые XEP отображает во что-то (500 страниц каталог отелей с автоматически сгенерированным оглавлением и индексом), который довольно успешно используется по крайней мере тремя различными коммерческими принтерами. Время от времени мы делали и другие небольшие документы.
Недостатком является то, что это даже не решение WYSIWYG удаленно - вы эффективно компилируете «исходный код», чтобы получить PDF обратно. Положительным моментом является то, что базовые технологии достаточно универсальны, даже если конкретные наборы инструментов могут быть немного меньше.