C#打印控件
WinForm中的打印可通過(guò)使用.Net提供的打印類(lèi)完成,也可以使用C#提供的支持打印的控件。
打印控件默認(rèn)放在工具箱的“打印”項(xiàng)中,共有5個(gè)組件共同完成打印功能,包括PrintDialog、PageSetupDialog、PrintDocument、PrintPeviewControl、PrintPreviewDialog。
1、PrintDocument
PrintDocument是主要打印控件,打印時(shí)必須添加,它是對(duì)PrintDocument類(lèi)的實(shí)現(xiàn),通過(guò)它的PrintPage事件可以設(shè)置打印內(nèi)容。
2、PrintDialog
PrintDialog提供打印機(jī)設(shè)置對(duì)話(huà)框,具有Document屬性和ShowDialog方法,將其Document屬性設(shè)置為PrintDocument對(duì)象即可。
3、PageSetupDialog
PageSetupDialog控件提供頁(yè)面設(shè)置對(duì)話(huà)框,常用的頁(yè)面設(shè)置元素有紙張、方向和頁(yè)邊距。
4、PrintPreviewDialog
PrintPreviewDialog提供標(biāo)準(zhǔn)的打印預(yù)覽對(duì)話(huà)框,用于顯示文檔的打印效果。該控件包含用于打印、放大、顯示一頁(yè)或多頁(yè)的按鈕。該控件的關(guān)鍵屬性Document與PrintDialog控件的相同,用于設(shè)置要預(yù)覽的文檔,此文檔必須是PrintDocument對(duì)象。
5、PrintPreviewControl
PrintPreviewControl幫助定制打印預(yù)覽對(duì)話(huà)框,可以顯示文檔的打印效果,沒(méi)有按鈕和其他用戶(hù)界面元素。該控件常用于打印預(yù)覽用戶(hù)界面,而PrintPreviewDialog控件用于標(biāo)準(zhǔn)用戶(hù)界面。
使用打印控件的步驟如下:
(1)編寫(xiě)打印邏輯步驟處理PrintDocument的一些事件。
調(diào)用其Print()方法時(shí),將依據(jù)下面的排列順序,依次觸發(fā)。
BeginPrint
PrintPage
EndPrint
(2)選擇打印機(jī)。
在打印對(duì)話(huà)框(PrintDialog)中選擇打印機(jī)。必須使用PrintDocument控件將其傳遞到打印機(jī)的PrintDialog控件中。
(3)選擇頁(yè)面設(shè)置。
用戶(hù)選擇了打印機(jī),準(zhǔn)備打印時(shí),允許用戶(hù)選擇頁(yè)面設(shè)置。創(chuàng)建一個(gè)PageSetupDialog控件,并將PageSettings實(shí)例傳遞到該控件中,使用戶(hù)可以操縱頁(yè)面設(shè)置。
(4)顯示打印預(yù)覽窗口。
添加PrintPreviewDialog控件,將PrintDocument控件傳遞給PrintPreview的Document屬性。

我們用上節(jié)的項(xiàng)目完成打印功能,在窗體中添加PrintDocument、PrintPreviewDialog、PrintDialog控件,分別編寫(xiě)“打印組件使用示例”
- private void 打印PToolStripMenuItem_Click(object sender, EventArgs e)
 - {
 - this.printDialog1.Document = this.printDocument1;
 - if (this.printDialog1.ShowDialog() == DialogResult.OK)
 - {
 - try
 - {
 - this.printDocument1.Print();
 - }
 - catch (Exception ex)
 - {
 - MessageBox.Show(ex.Message,"打印出錯(cuò)");
 - }
 - }
 - }
 - private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
 - {
 - Graphics g = e.Graphics;
 - string[] str = this.richTextBox1.Text.Split('\n');
 - int i=0;
 - foreach (string s in str)
 - {
 - g.DrawString(str[i], this.fontDialog1.Font, new SolidBrush(this.richTextBox1.ForeColor),new PointF(100,80+this.richTextBox1.Font.Height*i));
 - i++;
 - }
 - }
 - private void 打印預(yù)覽VToolStripMenuItem_Click(object sender, EventArgs e)
 - {
 - this.printPreviewDialog1.Document = this.printDocument1;
 - try
 - {
 - this.printPreviewDialog1.ShowDialog();
 - }
 - catch (Exception ex)
 - {
 - MessageBox.Show(ex.Message, "打印出錯(cuò)");
 - }
 - }
 
通過(guò)本文的介紹,關(guān)于C#中的打印控件,你肯定有了一定的了解。希望對(duì)你有幫助。
【編輯推薦】















 
 
 
 
 
 
 