使用C# 中的printDialog ,printPreviewDialog ,printDocument,举一个打印的实例
时间: 2023-08-15 14:20:58 浏览: 117
好的,我来举一个简单的打印实例。我们假设有一个 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,我们可以方便地实现打印功能。
阅读全文