WPF отлично подходит для этого.
Вы можете создавать шаблоны документов из элементов пользовательского интерфейса WPF, таких как Page или UserControl. Настройте шаблон так, как если бы вы настраивали любой пользовательский интерфейс в конструкторе VS. Определите, в какой форме будут храниться ваши данные (это будет ваш DataContext), а затем свяжите их с открытыми свойствами. Затем вы можете поместить свой объединенный шаблон в FixedPage и добавить его в документ XPS. Вы можете распечатать это очень легко или сохранить на диск.
Упрощенный алгоритм:
- Создать форму ввода данных.
- Создать тип, который будет содержать данные из формы (вызовите этот тип Foo)
- Создание шаблона страницы, который связывается с Foo (если экземпляром Foo является DataContext)
- Привязать форму к экземпляру Foo
- Пользователь должен заполнить форму (и, следовательно, экземпляр Foo)
- Создайте экземпляр вашего шаблона (предположим, что это страница)
- Установить Page.DataContext = fooInstance;
- Добавьте страницу в FixedPage, затем добавьте ее в фиксированный документ
- Сохранить исправленный документ в документе XPS
- Сохраните документ XPS или отправьте его в PrintQueue
Я делаю что-то похожее на это, и это работает хорошо. Просто зайдите в мой профиль и прочитайте все мои вопросы. Они покрывают большую часть трудностей всей процедуры.