日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
淺析C#打印和C#打印預(yù)覽的實(shí)現(xiàn)

我們談到C#打印和C#打印預(yù)覽的實(shí)現(xiàn)其中主要就是包括:頁面設(shè)置、打印預(yù)覽、打印三大部分。打印的原理是:生成mdi文件,系統(tǒng)碰到mdi的時候會自動以打印的方式處理。所以,不管用什么模板,什么方式;能在PrintPage事件處理中,生成一張要打印內(nèi)容的圖片就OK了!主要的支持類都包括在命名空間System.Drawing.Printing中,在程序集System.Drawing.dll中實(shí)現(xiàn)。C#打印和C#打印預(yù)覽的實(shí)現(xiàn)主要通過PrintDocument類來完成,另外還包括幾個輔助類:PrintDialog(打印對話框)、PrintPreviewDialog(打印預(yù)覽對話框)、PageSetupDialog。

創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價格,機(jī)房位于中國電信/網(wǎng)通/移動機(jī)房,四川雅安電信機(jī)房服務(wù)有保障!

PrintDocument類是實(shí)現(xiàn)打印和打印預(yù)覽的中心類,實(shí)際的打印操作是通過這個類來完成的。 使用這個類進(jìn)行打印的操作過程:

1)創(chuàng)建類實(shí)例 PrintDocument printDt = new PrintDocument();

2)設(shè)置類實(shí)例的屬性

3)為該類的打印事件添加事件處理函數(shù)

4)調(diào)用該類的Print函數(shù)進(jìn)行打印。

打印:printDt.Print();

共有三個與C#打印和C#打印預(yù)覽的實(shí)現(xiàn)有關(guān)的屬性:

◆DefaultPageSettings:保存了打印文檔的默認(rèn)頁面設(shè)置,如大小、打印方向,它是一個PageSettings類型的變量。

◆DocumentName:用于設(shè)置PrintDocument類實(shí)例的名字。是一個string類型的變量。

◆PrinterSettings:包含了打印機(jī)的設(shè)置信息,可以通過“打印”通用對話框?qū)ζ溥M(jìn)行設(shè)置。

在執(zhí)行打印操作之前,應(yīng)該對這3個屬性進(jìn)行正確的設(shè)置。 PageSettings類和PrinterSettings類 與 PrintDocument類的屬性設(shè)置相關(guān)的類。

PageSettings類指定單個打印頁面的設(shè)置。

PrinterSettings類包含打印機(jī)的設(shè)置信息。 這兩個類,用戶可以對打印機(jī)和打印頁面進(jìn)行充分的控制。

C#打印和C#打印預(yù)覽的實(shí)現(xiàn)之處理打印事件PrintDocument類提供了4個事件用來處理打印操作。

◆BeginPrint事件

這個事件在調(diào)用Print方法之后,并且在打印第1個頁面之前被觸發(fā)??梢栽谶@個事件中設(shè)置應(yīng)用于所有頁面的打印機(jī)屬性和頁面屬性,以及使用的字體等參數(shù)。

事件代理為PrintEventHandler,事件參數(shù)類型為PrintEvnetArgs。在PrintEvnetArgs中包含一個Cancel屬性,可以通過這個屬性設(shè)置為True來禁用打印操作。

 
 
 
  1. This.printDt.BeginPrint +=   
  2. new PrintEventHandler(this.BeginPrinting);  
  3.  
  4. Private void BeginPrinting(object sender, PrintEvnetArgs e)  
  5.  
  6. {//針對開始打印事件進(jìn)行相應(yīng)的處理  
  7.  
  8. }  

◆EndPrint事件

這個事件在打印完***一個頁面時被觸發(fā)??梢栽谶@個事件中完成一些資源清理工作。事件代理為PrintEventHandler,事件參數(shù)類型為PrintEvnetArgs。

◆PrintPage事件

這個事件在開始打印每一頁時被觸發(fā),每頁的打印都是在這個事件中完成的。用戶必須為這個事件提供處理函數(shù),以完成實(shí)際的打印操作。

事件代理類型為 PrintPageEvnetHandler,事件參數(shù)的類型為PrintPageEventArgs。

 
 
 
  1. printDt.PrintPage +=   
  2. new PrintPageEvnetHandler(this.PrintEveryPage);  
  3.  
  4. private void PrintEveryPage(object sender, PrintPageEventArgs)  
  5.  
  6. {  
  7.  
  8. Graphics gh = e.Graphics;//獲取繪圖對象  
  9.  
  10. //進(jìn)行具體的繪畫操作  
  11.  
  12. //如 gh.DrawingString(..);  
  13.  
  14. ..  
  15.  
  16. If (仍有頁面未打印)  
  17.  
  18. e.HasMorePages = true;  
  19.  
  20. else 
  21.  
  22. e.HasMorePages = false;  
  23.  
  24. }  

◆QueryPageSettings事件

這個事件在每個PrintPage事件之前被觸發(fā),可以使用這個事件來設(shè)置打印每一個頁面的頁面設(shè)置。

事件代理類型為 QueryPageSettingsEventHandler,事件參數(shù)的類型為QueryPageSettingsEventArgs。事件參數(shù)中包含一個PageSettings屬性。

 
 
 
  1. printDt.QueryPageSettings +=   
  2. new QueryPageSettingsEventHandler(this.SetEveryPage);  
  3.  
  4. private void SetEveryPage(object sneder, QueryPageSettingsEventArgs e)  
  5.  
  6. {  
  7. //根據(jù)不同的頁面來設(shè)置e.PageSettings屬性  
  8. …  
  9. }  
  10.  
  11. PrintDialog對話框 為了獲取打印機(jī)的設(shè)置信息,.Net框架未用戶提供了PrintDialog類。  
  12.  
  13. PrintDialog printDlg = new PrintDialog();  
  14.  

在顯示“打印”對話框之前,還需要設(shè)置它的屬性。

其中最重要的一個屬性就是Document屬性,類型為PrintDocument.,在對話框中所做的任何設(shè)置都將保存在這個屬性中。

PrinterSettings屬性也用來保存用戶在對話框中所做的設(shè)置。

在顯示“打印”對話框之前,必須設(shè)置Document和PrinterSettings屬性中的一個。

對話框中顯示“打印到文件”按鈕 AllowPrintToFile屬性

顯示選擇頁面范圍的控件 AllowSelection屬性

是否顯示幫助按鈕ShowHelp屬性

 
 
 
  1. //打印預(yù)覽  
  2. //PrintPreviewDialog ppd = new PrintPreviewDialog();  
  3.  
  4. PrintDocument pd = new PrintDocument();  
  5.  
  6. //設(shè)置邊距  
  7.  
  8. Margins margin = new Margins(20, 20, 20, 20);  
  9.  
  10. pd.DefaultPageSettings.Margins = margin;  
  11.  
  12. ////紙張設(shè)置默認(rèn)  
  13. //PaperSize pageSize = new PaperSize("First custom size", 800, 600);  
  14. //pd.DefaultPageSettings.PaperSize = pageSize;  
  15. //打印事件設(shè)置  
  16.  
  17. pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);  

C#打印和C#打印預(yù)覽的實(shí)現(xiàn)的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#打印和C#打印預(yù)覽的實(shí)現(xiàn)方面的編程有所幫助。


名稱欄目:淺析C#打印和C#打印預(yù)覽的實(shí)現(xiàn)
網(wǎng)頁路徑:http://www.dlmjj.cn/article/ccehddc.html