成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析C#打印和C#打印預覽的實現

開發 后端
C#打印和C#打印預覽的實現的三大部分:頁面設置、打印預覽、打印具體用到的類和屬性事件都是什么內容呢?那么本文就向你介紹C#打印和C#打印預覽的實現具體事宜。

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

PrintDocument類是實現打印和打印預覽的中心類,實際的打印操作是通過這個類來完成的。 使用這個類進行打印的操作過程:

1)創建類實例 PrintDocument printDt = new PrintDocument();

2)設置類實例的屬性

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

4)調用該類的Print函數進行打印。

打印:printDt.Print();

共有三個與C#打印和C#打印預覽的實現有關的屬性:

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

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

◆PrinterSettings:包含了打印機的設置信息,可以通過“打印”通用對話框對其進行設置。

在執行打印操作之前,應該對這3個屬性進行正確的設置。 PageSettings類和PrinterSettings類 與 PrintDocument類的屬性設置相關的類。

PageSettings類指定單個打印頁面的設置。

PrinterSettings類包含打印機的設置信息。 這兩個類,用戶可以對打印機和打印頁面進行充分的控制。

C#打印和C#打印預覽的實現之處理打印事件PrintDocument類提供了4個事件用來處理打印操作。

◆BeginPrint事件

這個事件在調用Print方法之后,并且在打印第1個頁面之前被觸發。可以在這個事件中設置應用于所有頁面的打印機屬性和頁面屬性,以及使用的字體等參數。

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

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

◆EndPrint事件

這個事件在打印完***一個頁面時被觸發。可以在這個事件中完成一些資源清理工作。事件代理為PrintEventHandler,事件參數類型為PrintEvnetArgs。

◆PrintPage事件

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

事件代理類型為 PrintPageEvnetHandler,事件參數的類型為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. //進行具體的繪畫操作  
  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事件之前被觸發,可以使用這個事件來設置打印每一個頁面的頁面設置。

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

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

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

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

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

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

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

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

是否顯示幫助按鈕ShowHelp屬性

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

C#打印和C#打印預覽的實現的基本內容就向你介紹到這里,希望對你了解和學習C#打印和C#打印預覽的實現方面的編程有所幫助。

【編輯推薦】

  1. C#實現打印功能實例詳解
  2. 詳解C#串口監聽的實現
  3. C#入門之概念簡介
  4. C#入門之C#特點淺析
  5. .NET Framework概念及開發淺析
責任編輯:仲衡 來源: 博客園
相關推薦

2009-08-26 13:36:33

C#打印控件

2009-08-26 13:48:31

C#打印條碼

2011-05-20 16:07:29

C#

2009-08-26 13:41:58

C#打印源碼

2009-08-26 13:22:24

C#打印程序

2009-08-26 10:43:14

C#實現打印功能

2009-08-26 12:59:08

C#打印設置

2009-08-26 09:22:44

C#實現打印功能

2009-08-26 11:32:37

C#打印文檔

2009-08-26 11:07:36

C#打印窗體

2009-08-27 16:18:47

C#類C#結構體

2009-08-26 14:31:08

C#打印文件

2009-08-25 17:59:49

C#入門

2009-08-26 12:14:44

C#打印設置

2009-09-01 18:29:24

C#實現多個接口

2009-09-02 17:24:44

C#關機代碼

2009-09-07 09:36:29

C# DisposeDispose方法

2009-09-02 15:34:37

C#實現插件構架

2009-08-31 16:48:02

C#實現IDispos

2009-08-27 13:50:08

C# StringBu
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美色影院 | 97伦理| www.久久| 日皮视频免费 | 欧美成人aaa级毛片在线视频 | 亚洲视频免费在线看 | 欧美日韩在线一区二区 | 激情欧美一区二区三区中文字幕 | 91一区二区 | 91天堂| 免费黄色的网站 | 日韩一区二区福利视频 | 超碰综合| 欧美成人h版在线观看 | 精品欧美一区二区三区精品久久 | 香蕉视频久久久 | 日日噜噜夜夜爽爽狠狠 | 日韩三级 | 一区二区三区四区国产精品 | 6080yy精品一区二区三区 | 亚洲一区国产精品 | 免费观看www | www.99热| 免费高清av| 欧美综合一区 | 亚洲精品日韩在线观看 | 欧美一二区 | 香蕉久久网 | 91视视频在线观看入口直接观看 | 久精品久久 | 一级大黄 | 国产不卡在线观看 | 国产一区二区激情视频 | 一级片在线观看 | 欧美在线 | 欧美一级久久 | 日韩一区欧美一区 | 久久国内| 日韩av一区二区在线观看 | 第四色影音先锋 | 亚洲黄色一级 |