Я профессионально использовал XSL-FO как в среде Java, так и в среде .NET.
Это действительно дает вам полный контроль над печатным документом / PDF.
Я сам создал очень сложные PDF-файлы, готовые к массовой печати (брошюры и документы).
Они включали сложные структуры, такие как текст, плавающий в столбцах, графики (с использованием встроенного SVG) и таблицы.
XSL-FO предназначен для печати, как HTML для экрана. Учитывая, что вы научитесь хорошо это знать, вы сможете создавать с ним что угодно, независимо от того, насколько сложен дизайн.
Основанный на Java FOP , вероятно, является одним из лучших процессоров XSL-FO. И это бесплатно, с открытым исходным кодом тоже.
Коммерческая версия AltSoft .NET XML2PDF хороша 2.
XSL-FO определенно подходит для создания PDF или печатных документов.
РЕДАКТИРОВАТЬ: Я ответил только на часть вашего вопроса, я думаю.
На сегодняшний день XSL-FO изначально не поддерживается ни одним распространенным браузером.
Я не думаю, что есть какие-либо планы по реализации встроенной поддержки в IE, я был бы очень удивлен, если бы это было.
XSL-FO - это всего лишь XML, поэтому с сегодняшнего дня .NET Framework вам больше не потребуется поддержка XSL-FO.
Как правило, XSL-FO генерируется с использованием XSLT, а затем результат преобразования передается в процессор объектов форматирования, такой как FOP.
В некоторых случаях XSLT (по крайней мере, не 1.0) недостаточно, если ваш документ XSL-FO очень сложный. Затем вы можете рассмотреть возможность использования расширений XSLT, написанных на таких языках, как C #. В некоторых случаях, возможно, XSLT не подходит для этой работы, вы можете рассмотреть возможность использования кода для генерации XSL-FO.