请详细介绍下C# 中的printDialog ,printPreviewDialog ,printDocument
时间: 2023-11-29 11:08:45 浏览: 153
在# 中,printDialog,printPreviewDialog和printDocument是三个用于打印的类。
printDialog类提供了一个对话框,允许用户选择打印机并设置打印机的属性,例如纸张大小和打印范围等。当用户单击“打印”按钮时,该类将打印作业发送到所选的打印机。
printPreviewDialog类提供了一个预览打印输出的对话框。用户可以在此对话框中查看打印输出并进行必要的更改,例如更改打印机属性或打印范围。此类还允许用户打印预览输出。
printDocument类是实际执行打印操作的类。该类包含打印作业的内容,并将其发送到所选的打印机。在使用此类时,我们需要实现PrintPage事件,在该事件中编写打印输出的内容。例如,我们可以在PrintPage事件中绘制图形或文本,并使其出现在打印输出中。
综上所述,这三个类通常一起使用,以提供完整的打印解决方案。printDialog用于选择打印机和打印机属性,printPreviewDialog用于预览打印输出并进行必要的更改,而printDocument用于实际执行打印操作。
相关问题
使用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,我们可以方便地实现打印功能。
printDocument
PrintDocument是一个用于打印文档的类,在打印过程中,可以使用PrintDocument组件的PrintPage事件来绘制页面。要使用PrintDocument打印文档,首先需要创建PrintDocument的对象。然后使用PageSetupDialog对话框设置页面打印方式,并使用PrintDialog对文档进行打印时的打印机参数进行设置。在打开这两个对话框之前,需要将对话框的属性Document设置为指定的PrintDocument对象,以便将修改的设置保存到PrintDocument组件中。最后,调用PrintDocument的Print方法来实际打印文档。在调用Print方法后,将引发BeginPrint、PrintPage和EndPrint事件,其中每打印一页都会引发PrintPage事件,如果打印多页,则会引发多次PrintPage事件。此外,还可以使用PrintPreviewDialog和PrintDocument来实现打印预览功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [C# 使用自带的组件PrintPreviewDialog 和 PrintDocument实现打印预览(一)](https://blog.csdn.net/weixin_40314351/article/details/130525301)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [【转】C#中PrintDocument类详解](https://blog.csdn.net/weixin_30918633/article/details/96037923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文