Я использую возможности составных документов для макетирования отчёта.
В одном окне открывается обычная форма, размер которой задаёт размер листа при печати. Также на форме присутствует область вывода полос и другие элементы, выводимые на принтер.
В другом окне редактируется список полос (т.н. bands), то есть, последовательно и циклически выводимых блоков.
Редактор полос - это отображение-контейнер, внутри которого внедрено текстовое отображение TextViews.View. Каждая полоса - это формочка, на которую стандартным образом можно набрасывать контролы.
Макет и полосы разнесены по разным окнам в силу того, что макетировать в одном окне лист и полосы неудобно.
То есть, отчёт включает в себя макет страницы и набор полос. И надо всё это дело соответственно сохранять в один файл.
По отдельности всё сохраняется стандартным способом (Save As). Либо форма-макет. Либо текст-полосы.
Все отображения завязаны на одну модель, которая распространяет изменения дизайна (например, в окне макета пользователь изменил ширину области вывода полос, и ширина полос автоматически изменилась), и тоже сохраняется в файле.
Вот и интересно - а можно ли выкрутиться и сохранить содержимое обоих окон в один файл? Это было бы изящно
Если такого способа нет, ну что ж - сделаю конвертер.