请详细介绍下C# 中的printDialog ,printPreviewDialog ,printDocument
时间: 2023-11-29 19:08:45 浏览: 33
在# 中,printDialog,printPreviewDialog和printDocument是三个用于打印的类。
printDialog类提供了一个对话框,允许用户选择打印机并设置打印机的属性,例如纸张大小和打印范围等。当用户单击“打印”按钮时,该类将打印作业发送到所选的打印机。
printPreviewDialog类提供了一个预览打印输出的对话框。用户可以在此对话框中查看打印输出并进行必要的更改,例如更改打印机属性或打印范围。此类还允许用户打印预览输出。
printDocument类是实际执行打印操作的类。该类包含打印作业的内容,并将其发送到所选的打印机。在使用此类时,我们需要实现PrintPage事件,在该事件中编写打印输出的内容。例如,我们可以在PrintPage事件中绘制图形或文本,并使其出现在打印输出中。
综上所述,这三个类通常一起使用,以提供完整的打印解决方案。printDialog用于选择打印机和打印机属性,printPreviewDialog用于预览打印输出并进行必要的更改,而printDocument用于实际执行打印操作。
相关问题
在C#中实现打印功能(C#中PrintDialog,PrintDocument的使用) (转)
在C#中实现打印功能的步骤如下:
1. 引入命名空间
```csharp
using System.Drawing.Printing;
using System.Windows.Forms;
```
2. 创建打印对话框
```csharp
PrintDialog printDialog = new PrintDialog();
```
3. 显示打印对话框
```csharp
if (printDialog.ShowDialog() == DialogResult.OK)
{
// 用户点击了“打印”按钮
}
```
4. 创建打印文档对象
```csharp
PrintDocument printDocument = new PrintDocument();
```
5. 设置打印文档的打印机
```csharp
printDocument.PrinterSettings = printDialog.PrinterSettings;
```
6. 设置打印文档的打印事件
```csharp
printDocument.PrintPage += new PrintPageEventHandler(PrintPage);
```
7. 实现打印事件
```csharp
private void PrintPage(object sender, PrintPageEventArgs e)
{
// 在此处编写打印逻辑
}
```
8. 开始打印
```csharp
printDocument.Print();
```
完整的代码示例:
```csharp
using System.Drawing.Printing;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
PrintDocument printDocument = new PrintDocument();
printDocument.PrinterSettings = printDialog.PrinterSettings;
printDocument.PrintPage += new PrintPageEventHandler(PrintPage);
printDocument.Print();
}
}
private void PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString("Hello, World!", new Font("Arial", 12), Brushes.Black, new PointF(0, 0));
}
}
```
使用C# 中的printDialog ,printPreviewDialog ,printDocument,举一个打印的实例
好的,我来举一个简单的打印实例。我们假设有一个 WinForm 应用程序,里面有一个按钮,点击按钮后会弹出打印对话框,用户选择打印机和打印选项后可以进行打印预览和打印操作。
首先,在按钮的 Click 事件中添加如下代码:
```csharp
private void btnPrint_Click(object sender, EventArgs e)
{
// 创建一个 PrintDocument 对象
PrintDocument pd = new PrintDocument();
// 打印事件处理程序
pd.PrintPage += new PrintPageEventHandler(PrintPageEventHandler);
// 创建一个 PrintDialog 对象
PrintDialog pdlg = new PrintDialog();
// 设置 PrintDialog 对象的属性
pdlg.Document = pd;
pdlg.AllowSelection = true;
pdlg.AllowSomePages = true;
// 如果用户点击了“确定”按钮,进入打印预览
if (pdlg.ShowDialog() == DialogResult.OK)
{
// 创建一个 PrintPreviewDialog 对象
PrintPreviewDialog ppdlg = new PrintPreviewDialog();
// 设置 PrintPreviewDialog 对象的属性
ppdlg.Document = pd;
// 如果用户点击了“打印”按钮,进入打印操作
if (ppdlg.ShowDialog() == DialogResult.OK)
{
pd.Print();
}
}
}
```
上述代码中,我们创建了一个 PrintDocument 对象,并为其添加了打印事件处理程序。接着,创建了一个 PrintDialog 对象,并为其设置了一些属性,比如允许用户选择打印机和打印选项等。如果用户点击了“确定”按钮,就会进入打印预览。在打印预览中,我们创建了一个 PrintPreviewDialog 对象,并为其设置了打印文档。如果用户点击了“打印”按钮,就会进入打印操作,调用 PrintDocument 的 Print 方法即可。
最后,我们需要实现 PrintPageEventHandler 方法,该方法用于绘制打印页面的内容。下面是一个简单的实现:
```csharp
private void PrintPageEventHandler(object sender, PrintPageEventArgs e)
{
// 绘制一些文本和图形
e.Graphics.DrawString("Hello, world!", new Font("Arial", 16), Brushes.Black, new PointF(100, 100));
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(200, 200, 100, 100));
}
```
上述代码中,我们使用 Graphics 对象绘制了一些文本和图形,这些内容将会被打印出来。
以上就是一个简单的打印实例,通过使用 C# 中的 printDialog,printPreviewDialog 和 printDocument,我们可以方便地实现打印功能。