WinFrom 打印必知必会
1打印中所使用的默认单位
打印中使用的单位是百分之一英寸,参考PaperSize中使用的参数
2 打印的时候厘米和百分之一英寸怎么来转换
可以使用PrinterUnitConvert类来进行转换,这里需要用到一个PrinterUnit的枚举来进行转换,
比如把十分之一毫米转换成为百分之一英寸
(int)PrinterUnitConvert.Convert(value, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display);
3 如何来打印预览
首先我们定义一个PrintDocument对象,并实现PrintPage方法:
在一个按钮的单击事件里面实现打印预览:
执行打印预览后我们会看到打印出来的效果:
4.自定义打印预览
如果是自定义打印预览就需要设置好指定的打印控制器PrintController的属性。
PrintController 由 PrintDocument 使用,而这种使用通常不是直接的。
.NET Framework 包括从 PrintController 派生的三个打印控制器,可帮助完成常见的任务。
1.StandardPrintController 将文档打印到打印机。
2.PreviewPrintController 生成文档打印时的外观预览并由 PrintPreviewControl 和 PrintPreviewDialog 类使用。
3.PrintControllerWithStatusDialog 在打印过程中提供一个打印状态对话框。
自己手动的实现一个打印预览的功能是由PreviewPrintController 来实现的
首先定义了一个PreviewPrintController 对象,并赋值给PrintDocument。然后执行打印。
利用GetPreviewPageInfo()得到一个PreviewPageInfo数组;打印信息包括在了这个数组里,以每张图片和信息一页存储在了数组中。
数组中的Image和PhysicalSize对象提供的打印相关的信息 :一张图片和打印页的大小。在打印出来的图片的大小和打印页的大小是不相同的,图片的大小要高于打印页的大小。所以要转换大小。然后显示到界面,如果打印多页只需要对PreviewPageInfo数组进行切换就行了。
5 有时候我们并不想在打印的时候显示一个正在打印的打印框
如图
我们可以实例化PrintController的派生类来实现
NET Framework 包括从 PrintController 派生的三个打印控制器,可帮助完成常见的任务。StandardPrintController将文档打印到打印机。PreviewPrintController生成文档打印时的外观预览并由 PrintPreviewControl 和 PrintPreviewDialog 类使用。PrintControllerWithStatusDialog 在打印过程中提供一个打印状态对话框。
当我们需要显示打印状态对话框的时候可以用PrintControllerWithStatusDialog 包装一个PreviewPrintController 来显示打印对话框
printDocument.PrintController = new PrintControllerWithStatusDialog(previewController);
如果不需要可以用
PreviewPrintController previewController = new PreviewPrintController();
previewController.UseAntiAlias = true;
printDocument.PrintController = previewController;
6.也许你还想设置打印的文字的样式 ,比如在一个区域内居中显示
我们可以使用
StringFormat format = new StringFormat();
并设置format的相关属性 最后打印时使用
graphics.DrawString(PrintText, Font, new SolidBrush(Color), rectangle,format );