Печать в WPF - PullRequest
       7

Печать в WPF

2 голосов
/ 22 января 2011

Я знаю, как вызывать диалог печати и делать другие вещи. Мой вопрос: как лучше распечатать страницу WPF?

  1. Чтобы вызвать другую страницу со всеми поля, форматирование и верстка работали из. А затем вызвать печать на этом

  2. Для вызова пользовательского элемента управления со всеми поля, форматирование и верстка работали из. И затем вызвать печать на этом

  3. Для вызова окна со всеми поля, форматирование и верстка работали из. И затем вызвать печать на этом

  4. Или любым другим предпочтительным способом делает это.

Пожалуйста, дайте мне знать, как вы подходите к печати?

1 Ответ

9 голосов
/ 22 января 2011

В WPF у вас есть много вариантов печати. Вопрос о том, какой из них лучше всего подходит, зависит исключительно от IMO от печатного контента и желаемого качества.

Печать визуальная
Если вы хотите напечатать что-то, что выглядит точно так же, как представление в пользовательском интерфейсе, тогда вы можете попробовать распечатать непосредственно визуальный элемент, который создает корневой контент вашего печатного контента. Если у вас есть проблемы с позиционированием и вам нужно исправить свойства этого визуала, я бы порекомендовал создать его копию в памяти, преобразовать копию и затем распечатать эту копию. Распечатка визуальных изображений имеет много недостатков. Я редко использую его, за исключением коротких хаков и мини-инструментов. Если я использую, я в основном должен создать упомянутую невидимую копию и распечатать это. Если вы идете этим путем, позаботьтесь о том, чтобы вам позвонили в Measure и Arrange из кода.

Печать FlowDocument
Другая возможность - распечатать FlowDocument. Если у вас есть что-то, что вписывается в FlowDocuments , я считаю, что это простой способ создать приятный контент для распечатки. В основном, если у вас есть несколько простых отчетов, перечислите несколько изображений, это хороший способ. Качество печати хорошее, и многие сложные операции будут выполняться автоматически, если вы не хотите изменять поведение, а также это возможно. Качество такой распечатки IMO очень хорошее.

Печать XPS
Однако, если у вас сложный контент, и вы хотите, чтобы он хорошо распечатывался, вы должны создать XPS-контент и распечатать его по XPS Print Path . Таким образом, у вас есть все возможности и варианты, качество очень хорошее, но у вас больше всего работы. Мне это не очень нравится, но в основном это способ печати. ​​

Я предполагаю, что ваш вопрос в основном относится к первому блоку, однако я думаю, что было бы полезно увидеть, какие у вас есть варианты, если печать визуала не достаточна (для меня это очень редко). Надеюсь, что это ответ на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...