91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-11-23 23:18:38 來源:億速云 閱讀:333 作者:柒染 欄目:編程語言

如何淺析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來禁用打印操作。

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

◆EndPrint事件

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

◆PrintPage事件

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

事件代理類型為 PrintPageEvnetHandler,事件參數的類型為PrintPageEventArgs。

printDt.PrintPage +=   new PrintPageEvnetHandler(this.PrintEveryPage);   private void PrintEveryPage(object sender, PrintPageEventArgs)   {   Graphics gh = e.Graphics;//獲取繪圖對象   //進行具體的繪畫操作   //如 gh.DrawingString(..);   ..   If (仍有頁面未打印)   e.HasMorePages = true;   else  e.HasMorePages = false;   }

◆QueryPageSettings事件

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

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

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

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

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

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

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

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

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

是否顯示幫助按鈕ShowHelp屬性

//打印預覽  //PrintPreviewDialog ppd = new PrintPreviewDialog();   PrintDocument pd = new PrintDocument();   //設置邊距   Margins margin = new Margins(20, 20, 20, 20);   pd.DefaultPageSettings.Margins = margin;   ////紙張設置默認  //PaperSize pageSize = new PaperSize("First custom size", 800, 600);  //pd.DefaultPageSettings.PaperSize = pageSize;  //打印事件設置   pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂州市| 临洮县| 连城县| 平谷区| 和平县| 房山区| 勃利县| 安新县| 犍为县| 黔西县| 滕州市| 荃湾区| 嘉禾县| 玛纳斯县| 宁都县| 祥云县| 彰化县| 赤城县| 图们市| 达州市| 三台县| 图木舒克市| 惠东县| 吴桥县| 凤台县| 武城县| 武安市| 台南市| 湛江市| 仪征市| 阿拉善右旗| 涿州市| 会宁县| 洛阳市| 聂荣县| 香河县| 景德镇市| 肥乡县| 泗阳县| 新化县| 盈江县|