C# PrintDocument 已更改事件:全面解析
PrintDocument 类是 .NET Framework 中的一个类,用于在基于 Windows 的应用程序中打印文档。在 C# 中,这个类已被更改并扩展为支持更多功能,如自定义属性、事件和更多方法。下面是关于 C# PrintDocument 已更改事件的详细解析:
1. PrintDocument 类
在 C# 的早期版本中,PrintDocument 类用于在应用程序中打印文档。这个类提供了基本的打印功能,包括设置页面大小、方向、纸张、打印标题等。
using System.Drawing.Printing;
class PrintDocument : System.Windows.Forms.Document
{
// 构造函数
public PrintDocument()
{
// 初始化打印机
if (PrinterSettings.InstalledPrinters.Count == 0)
{
throw new Exception("No printers are installed.");
}
// 获取第一个打印机
m_PrinterSettings = new PrinterSettings();
m_PrinterSettings.PrinterName = PrinterSettings.InstalledPrinters[0];
}
// 打印方法
protected override void OnPrint(PrintEventArgs e)
{
// 打印当前文档
base.OnPrint(e);
// 打印预览
if (m_PrintPreview == null)
{
m_PrintPreview = new PrintPreviewDialog();
m_PrintPreview.Document = this;
m_PrintPreview.ShowDialog();
m_PrintPreview.Dispose();
}
else
{
m_PrintPreview.Print();
}
}
// 页面设置
public override PrinterSettings PrinterSettings
{
get
{
return m_PrinterSettings;
}
set
{
m_PrinterSettings = value;
}
}
// 自定义属性
public string Title
{
get { return this.Text; }
set { this.Text = value; }
}
public string DocumentName
{
get { return m_PrinterSettings.PrinterName; }
set { m_PrinterSettings.PrinterName = value; }
}
public int NumberOfCopies
{
get { return m_PrinterSettings.Copies; }
set { m_PrinterSettings.Copies = value; }
}
public string Paper
{
get { return m_PrinterSettings.PaperName; }
set { m_PrinterSettings.PaperName = value; }
}
public int PageOrientation
{
get { return m_PrinterSettings.PageOrientation; }
set { m_PrinterSettings.PageOrientation = value; }
}
public int Scale
{
get { return m_PrinterSettings.Scale; }
set { m_PrinterSettings.Scale = value; }
}
// 打印机设置
private PrinterSettings m_PrinterSettings = new PrinterSettings();
private PrintPreviewDialog m_PrintPreview;
}
2. C# PrintDocument 已更改事件
C# PrintDocument 类在 PrintDocument.PrintController 属性中引入了新的 PrintController 类别,该属性提供了一个用于控制文档打印的新接口。
using System.Drawing.Printing;
// ...
// 创建一个 PrintController 对象
PrintController printController = new PrintController();
// 将 PrintDocument 对象传递给 PrintController 以进行打印
printController.PrintDocument(doc, "My Document");
PrintController 类提供了一些新方法,用于控制文档的打印过程。例如,PrintController.Print() 方法用于打印指定的文档,PrintController.BeginPrint() 方法用于开始打印过程,PrintController.EndPrint() 方法用于结束打印过程。
此外,PrintController 类还提供了一些属性,用于获取文档的打印状态和打印选项。例如,PrintController.JobProperties 属性用于获取文档的打印作业属性,PrintController.PrinterSettings 属性用于获取文档的打印机设置。
总之,C# PrintDocument 类已经进行了修改,现在可以通过 PrintController 对象来控制文档的打印过程。
领取专属 10元无门槛券
手把手带您无忧上云