WPF 打印常用的方式有:
界面元素打印法
把需要打印的内容放在一个Grid这样的容器中,比如:
<Grid Name="printGrid">
<TextBlock Height="115" HorizontalAlignment="Left" Margin="79,31,0,0" Text="Hello World" />
</Grid>
后台调用打印的窗口类PrintDialog
优势:太简单了吧,类似截屏一样的功能
缺点:被隐藏的部分无法打印
流文档打印法
WPF 提供了一个流文档,新建一个流文档,然后转成xps,最后用DocumentViewer展示就可以了,DocumentViewer自带打印功能;
优点:可以自己写模板,打印什么样式都在流文档里面写
缺点:无法打印分页
分页器画图法
当我们不使用流文档方法时,可以采用画图的方式,在哪里画了,wpf提供了DocumentPaginator这个分页器,通过DrawingVisual把自定义的内容画出来,其中很重要的一个方法就是GetPage,DrawingVisual画表格、画图片、画文本等等,得到DocumentPage类,该类拥有Visual属性,在前端放一个Canvas,添加visual即可,就呈现出了结果,是不是很方便