首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#PrintDocument已更改事件

C# PrintDocument 已更改事件:全面解析

PrintDocument 类是 .NET Framework 中的一个类,用于在基于 Windows 的应用程序中打印文档。在 C# 中,这个类已被更改并扩展为支持更多功能,如自定义属性、事件和更多方法。下面是关于 C# PrintDocument 已更改事件的详细解析:

1. PrintDocument 类

在 C# 的早期版本中,PrintDocument 类用于在应用程序中打印文档。这个类提供了基本的打印功能,包括设置页面大小、方向、纸张、打印标题等。

代码语言:csharp
复制
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 类别,该属性提供了一个用于控制文档打印的新接口。

代码语言:csharp
复制
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 对象来控制文档的打印过程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

15分5秒

MySQL 高可用工具 - MHA-Re-Edition 复刻版

领券