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 );

原文地址:https://www.cnblogs.com/ac1985482/p/2082808.html