首先我们定义一个PrintDocument对象,并实现PrintPage方法:
在一个按钮的单击事件里面实现打印预览:
执行打印预览后我们会看到打印出来的效果:
自定义打印预览
如果是自定义打印预览就需要设置好指定的打印控制器PrintController的属性。
PrintController 由 PrintDocument 使用,而这种使用通常不是直接的。
.NET Framework 包括从 PrintController 派生的三个打印控制器,可帮助完成常见的任务。
1.StandardPrintController 将文档打印到打印机。
2.PreviewPrintController 生成文档打印时的外观预览并由 PrintPreviewControl 和 PrintPreviewDialog 类使用。
3.PrintControllerWithStatusDialog 在打印过程中提供一个打印状态对话框。
代码如下 |
复制代码 |
自己手动的实现一个打印预览的功能是由PreviewPrintController 来实现的
|
首先定义了一个PreviewPrintController 对象,并赋值给PrintDocument。然后执行打印。
利用GetPreviewPageInfo()得到一个PreviewPageInfo数组;打印信息包括在了这个数组里,以每张图片和信息一页存储在了数组中。
数组中的Image和PhysicalSize对象提供的打印相关的信息 :一张图片和打印页的大小。在打印出来的图片的大小和打印页的大小是不相同的,图片的大小要高于打印页的大小。所以要转换大小。然后显示到界面,如果打印多页只需要对PreviewPageInfo数组进行切换就行了。
当我们需要显示打印状态对话框的时候可以用PrintControllerWithStatusDialog 包装一个PreviewPrintController 来显示打印对话框
printDocument.PrintController = new PrintControllerWithStatusDialog(previewController);