Это не тривиально, основная проблема здесь в том, что XPS представляет фиксированные страницы. Существующая страница WPF не обязательно переводится на страницы документа. Как будет разделяться ваш отчет, если он не помещается на странице? Эта информация необходима.
Что вы можете сделать, это создать отчет как FlowDocument (см. http://msdn.microsoft.com/en-us/library/aa970909.aspx).). Это даст .NET Framework достаточно информации о том, как разбить на страницы отчет, чтобы при выполнении этого:
FlowDocument flowDocument;
// load, populate your flowDocument here
XpsDocument xpsDocument = new XpsDocument("filename.xps", FileAccess.ReadWrite);
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument);
writer.Write(((IDocumentPaginatorSource)flowDocument).DocumentPaginator);
это работает. (Код взят из Pro WPF в C # Book).