В WPF у вас есть много вариантов печати. Вопрос о том, какой из них лучше всего подходит, зависит исключительно от IMO от печатного контента и желаемого качества.
Печать визуальная
Если вы хотите напечатать что-то, что выглядит точно так же, как представление в пользовательском интерфейсе, тогда вы можете попробовать распечатать непосредственно визуальный элемент, который создает корневой контент вашего печатного контента. Если у вас есть проблемы с позиционированием и вам нужно исправить свойства этого визуала, я бы порекомендовал создать его копию в памяти, преобразовать копию и затем распечатать эту копию. Распечатка визуальных изображений имеет много недостатков. Я редко использую его, за исключением коротких хаков и мини-инструментов. Если я использую, я в основном должен создать упомянутую невидимую копию и распечатать это. Если вы идете этим путем, позаботьтесь о том, чтобы вам позвонили в Measure и Arrange из кода.
Печать FlowDocument
Другая возможность - распечатать FlowDocument. Если у вас есть что-то, что вписывается в FlowDocuments , я считаю, что это простой способ создать приятный контент для распечатки. В основном, если у вас есть несколько простых отчетов, перечислите несколько изображений, это хороший способ. Качество печати хорошее, и многие сложные операции будут выполняться автоматически, если вы не хотите изменять поведение, а также это возможно. Качество такой распечатки IMO очень хорошее.
Печать XPS
Однако, если у вас сложный контент, и вы хотите, чтобы он хорошо распечатывался, вы должны создать XPS-контент и распечатать его по XPS Print Path . Таким образом, у вас есть все возможности и варианты, качество очень хорошее, но у вас больше всего работы. Мне это не очень нравится, но в основном это способ печати.
Я предполагаю, что ваш вопрос в основном относится к первому блоку, однако я думаю, что было бы полезно увидеть, какие у вас есть варианты, если печать визуала не достаточна (для меня это очень редко). Надеюсь, что это ответ на ваш вопрос.