精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#打印程序實現完整文檔打印功能

開發 后端
在Windows應用程序中文檔的打印是一項非常重要的功能,在以前一直是一個非常復雜的工作,.NET Framework的打印功能都以組件的方式提供,為程序員提供了很大的方便,但是這幾個組件的使用還是很復雜的,有必要解釋一下用C#打印程序實現完整文檔打印功能。

C#打印程序實現完整文檔打印功能,我們會介紹打印操作具體包括的四個功能,打印所涉及的類的屬性及方法,以及最終實現的樣例。***我們會總結C#打印程序的全部過程。

打印操作通常包括以下四個功能

1 打印設置 設置打印機的一些參數比如更改打印機驅動程序等

2 頁面設置 設置頁面大小紙張類型等

3 打印預覽 類似于word中的打印預覽

4 打印

下面我把我編寫的記事本(全部源代碼可以在http://www.cndot.net中下載)中用到的打印功能的代碼進行解釋希望能給大家一些幫助實現打印功能的核心是PrintDocument類這個類屬于System.Drawing.Printing名字空間這個類封裝了當前的打印設置頁面設置以及所有的與打印有關的事件和方法

這個類包括以下幾個屬性 事件 和方法

1、PrinterSettings 屬性

存放打印機的設置信息這個屬性不需要程序員設置因為它是由打印對話框獲取的

2、PrintCountroller 屬性

控制打印過程

3、DefaultPageSettings 屬性

存放頁面設置信息 打印紙大小方向等也不需要程序員設置因為它是由頁面設置對話框獲取的

4、DocumentName 屬性

指定文檔名稱,出現在打印機狀態窗口中

1。 BeginPrint事件

在打印之前發出

2. PrintPage事件

每打印一頁是發出,事件接受一個PrintPageEventArgs參數該參數封裝了打印相關的信息

PrintPageEventArgs參數有很多重要的屬性

1 Cancel 取消打印

2 Graphics 頁面的繪圖對象

3 HasMorePages 是否還有要打印的頁面

Print 方法 該方法沒有參數 調用它將按照當前設置開始打印若實現打印功能首先構造PrintDocument對象添加打印事件。

  1. PrintDocument printDocument;  
  2. private void InitializeComponent()  
  3. {  
  4. ...  
  5. printDocument=new PrintDocument();  
  6. printDocument.PrintPage += new PrintPageEventHandler (this.printDocument_PrintPage);  
  7. ...  

實現打印事件功能

打印和繪圖類似都是調用Graphics 類的方法進行畫圖 不同的是一個在顯示器上一個在打印紙上并且打印要進行一些復雜的計算如換行 分頁等。

  1. private void printDocument_PrintPage(object sender,PrintPageEventArgs e)  
  2. {  
  3. Graphics g = e.Graphics; //獲得繪圖對象  
  4. float linesPerPage = 0; //頁面的行號  
  5. float yPosition = 0;   //繪制字符串的縱向位置  
  6. int count = 0; //行計數器  
  7. float leftMargin = e.MarginBounds.Left; //左邊距  
  8. float topMargin = e.MarginBounds.Top; //上邊距  
  9. string line = null; 行字符串  
  10. Font printFont = this.textBox.Font; //當前的打印字體  
  11. SolidBrush myBrush = new SolidBrush(Color.Black);//刷子  
  12. linesPerPage = e.MarginBounds.Height / printFont.GetHeight(g);//每頁可打印的行數  
  13. //逐行的循環打印一頁  
  14.     while(count < linesPerPage && ((line=lineReader.ReadLine()) != null))  
  15.     {  
  16.        yPosition = topMargin + (count * printFont.GetHeight(g));  
  17.        g.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());  
  18.        count++;  
  19.     } 

如果本頁打印完成而line不為空說明還有沒完成的頁面這將觸發下一次的打印事件在下一次的打印中lineReader會
自動讀取上次沒有打印完的內容因為lineReader是這個打印方法外的類的成員它可以記錄當前讀取的位置
   

  1.  if(line != null)  
  2.         e.HasMorePages = true;  
  3.     else 
  4.         e.HasMorePages = false;   

打印設置,構造打印對話框 將對話框中設置的Document屬性賦給printDocument這樣會將用戶的設置自動保存到printDocument的PrinterSettings屬性中

  1. protected  void FileMenuItem_PrintSet_Click(object sender,EventArgs e)  
  2. {  
  3. PrintDialog printDialog = new PrintDialog();  
  4. printDialog.Document = printDocument;  
  5. printDialog.ShowDialog();  

頁面設置和打印預覽與打印設置原理相同都是構造對話框將用戶在對話框中的設置保存到相應的類的屬性中

  1. protected  void FileMenuItem_PageSet_Click(object sender,EventArgs e)  
  2. {  
  3.   PageSetupDialog pageSetupDialog = new PageSetupDialog();  
  4.   pageSetupDialog.Document = printDocument;  
  5.   pageSetupDialog.ShowDialog();  

C#打印程序打印預覽

  1. protected void FileMenuItem_PrintView_Click(object sender,EventArgs e)  
  2. {  
  3.    PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();  
  4.    printPreviewDialog.Document = printDocument;  
  5.    lineReader = new StringReader(textBox.Text);  
  6.    try 
  7.       {  
  8.     printPreviewDialog.ShowDialog();  
  9.       }  
  10.     catch(Exception excep)  
  11.     {  
  12.     MessageBox.Show(excep.Message, "打印出錯", MessageBoxButtons.OK, MessageBoxIcon.Error);  
  13.     }  

打印就可以直接調用printDocument的Print()方法因為用戶可能在打印之前還要再更改打印設置所以在這里再次顯示打印設置對話框

  1. protected void FileMenuItem_Print_Click(object sender,EventArgs e)  
  2.   {  
  3.    PrintDialog printDialog = new PrintDialog();  
  4.    printDialog.Document = printDocument;  
  5.    lineReader = new StringReader(textBox.Text);  
  6.    if (printDialog.ShowDialog() == DialogResult.OK)  
  7.    {  
  8.     try 
  9.        {  
  10.        printDocument.Print();  
  11.        }  
  12.        catch(Exception excep)  
  13.             {  
  14.               MessageBox.Show(excep.Message, "打印出錯", MessageBoxButtons.OK, MessageBoxIcon.Error);  
  15.               printDocument.PrintController.OnEndPrint(printDocument,new PrintEventArgs());  
  16.             }  
  17.        }  
  18.   } 

C#打印程序總結打印的過程是

1 在應用程序窗體初始化時構造PrintDocument對象  添加 printDocument 的 PrintPage 方法

2 實現PrintPage方法  4 在用戶的單擊事件中調用 printDocument 的 Print方法實現打印功能在這中間可能要用到  PrintDialog PrintPreviewDialog PageSetupDialog 設置和查看打印效果這些方法通常是由菜單的單擊觸發的。

【編輯推薦】

  1. C# GreetPeople方法
  2. C# Hashtable對象分析
  3. 常用C# Arraylist的介紹
  4. C# Observer設計模式
  5. C#交錯數組淺析
責任編輯:彭凡 來源: book.8844.com
相關推薦

2009-08-26 11:32:37

C#打印文檔

2009-08-26 09:22:44

C#實現打印功能

2009-08-26 10:43:14

C#實現打印功能

2009-08-26 09:54:45

C#打印預覽C#打印

2011-05-20 16:07:29

C#

2009-08-26 12:59:08

C#打印設置

2009-08-26 11:07:36

C#打印窗體

2009-08-26 13:41:58

C#打印源碼

2009-08-26 12:14:44

C#打印設置

2009-08-26 14:31:08

C#打印文件

2009-08-26 13:48:31

C#打印條碼

2009-08-26 13:36:33

C#打印控件

2009-08-26 14:48:21

C#打印分頁

2009-09-02 17:29:10

C# TextBox換

2009-08-26 14:03:26

C#打印原理

2009-08-26 11:53:56

C#打印文本文件

2009-09-04 13:55:04

C#文檔自動化

2009-08-12 16:26:30

C#讀取XML文檔

2010-02-01 16:54:18

C++打印地址信息

2011-12-21 14:33:20

HP Envy 110HP Officeje商用噴墨打印機
點贊
收藏

51CTO技術棧公眾號

老司机午夜网站| eeuss一区二区三区| 五月婷婷婷婷婷| 精品视频一区二区三区在线观看| 亚洲综合在线第一页| 激情小说网站亚洲综合网 | 污视频在线免费观看| 日韩中文欧美在线| 欧美大片网站在线观看 | 国产成人影院| 欧美一区二区播放| 久久婷婷国产91天堂综合精品| 性爱视频在线播放| 91啪亚洲精品| 91影院未满十八岁禁止入内| 成人免费毛片男人用品| 午夜亚洲福利| 综合网日日天干夜夜久久| 国产51自产区| 久久亚洲精精品中文字幕| 欧美午夜精品久久久久久久| 狠狠噜天天噜日日噜| 国产视频福利在线| 91免费版在线看| av蓝导航精品导航| 91丨九色丨丰满| 视频一区二区国产| 午夜精品在线视频| 午夜剧场免费在线观看| 成人黄色av| 国产视频亚洲视频| 稀缺小u女呦精品呦| 超碰国产精品一区二页| 日本道色综合久久| 18禁免费无码无遮挡不卡网站| 亚洲第一图区| 亚洲精品日日夜夜| 尤物国产精品| 成年人视频在线免费观看| 久久婷婷色综合| 国产区二精品视| 亚洲精品久久久久久无码色欲四季 | 亚洲91av视频| 青青草免费av| 91精品国产乱码久久久久久| 日韩中文字幕免费视频| 久久久久久成人网| 日韩dvd碟片| 日韩在线视频一区| 欧美日韩黄色网| 97精品在线| 日韩一区二区三区在线播放| 久久噜噜色综合一区二区| 秋霞欧美视频| 久久激情五月丁香伊人| 三级影片在线看| 欧美久久一级| 亚洲av成人无码久久精品老人| 欧美jizz| 久久久99久久精品女同性| 日韩免费成人av| 奇米影视亚洲| 正在播放欧美一区| 91导航在线观看| 国产精品7m凸凹视频分类| 久久久av电影| 久久久国产精品黄毛片| 亚洲国产第一| 茄子视频成人在线| 欧美国产一级片| 日韩不卡一二三区| 成人性生交大片免费观看嘿嘿视频| 国产精品老熟女视频一区二区| 国产在线精品一区二区三区不卡 | 久草在线综合| 精品亚洲一区二区三区在线播放 | 欧日韩不卡在线视频| 亚洲国产精品无码久久久| 麻豆久久久久久| 亚洲精品欧美日韩专区| 视频二区在线观看| 国产午夜亚洲精品理论片色戒 | 激情综合在线| 国产91在线播放| 国产精品久久婷婷| 97se亚洲国产综合自在线不卡| 色姑娘综合av| 第四色日韩影片| 91搞黄在线观看| 制服下的诱惑暮生| 一呦二呦三呦国产精品| 久久综合亚洲社区| 久久久久久久久久久久久av| 久久99精品久久久久久| 国产成人精品福利一区二区三区 | 欧美日韩大片免费观看| 最近2019中文字幕mv免费看| 久久精品一区二区三| 日韩av网站免费在线| 99三级在线| 成人在线免费看| 亚洲制服丝袜av| 国内自拍视频一区| 99久久免费精品国产72精品九九| 在线看欧美日韩| 国产无遮挡aaa片爽爽| 蜜臀av一区二区在线观看| 国产精品区一区| 欧美三级电影一区二区三区| 欧美视频免费在线观看| 日本一二三四区视频| 精品久久不卡| 777午夜精品福利在线观看| 国产毛片一区二区三区va在线| 91网站黄www| 国产成a人亚洲精v品在线观看| 丁香婷婷久久| 亚洲欧美日韩国产中文专区| 动漫精品一区一码二码三码四码| 极品少妇xxxx偷拍精品少妇| 欧美最大成人综合网| av毛片午夜不卡高**水| 欧美一区二区视频免费观看| 青青草华人在线视频| 久久激情综合| 精品999在线观看| 免费男女羞羞的视频网站在线观看| 欧美日高清视频| 天堂久久精品忘忧草| 国产日韩免费| 久久久影院一区二区三区 | 亚洲图片自拍偷拍| 亚洲女人在线观看| 成人影视亚洲图片在线| 日韩免费不卡av| 欧洲成人av| 精品久久久久久国产91| 四虎精品一区二区| 影音先锋中文字幕一区| eeuss一区二区三区| 天堂va在线| 欧美大黄免费观看| 免费中文字幕视频| 高清不卡在线观看| 免费看黄在线看| 国产欧美一区二区三区米奇| 欧美激情一区二区三区成人| 亚洲成人77777| 亚洲在线免费播放| 午夜剧场免费看| 亚洲激情女人| 久久国产欧美精品| 美女福利一区二区| 伊人久久大香线蕉av一区二区| 波多野结衣在线电影| 国产精品私房写真福利视频| 亚洲精品手机在线观看| 911精品美国片911久久久| 51午夜精品| a级片在线免费| 精品国产一区二区在线观看| 国产精选第一页| www久久久久| 五月婷婷深爱五月| 91精品国偷自产在线电影| 114国产精品久久免费观看| 日本动漫理论片在线观看网站| 精品国产乱码久久久久久图片| 国产真实乱偷精品视频| 久久一日本道色综合| 亚洲性生活网站| 中文字幕人成人乱码| 国产精品v欧美精品v日韩| 欧美调教sm| 在线精品播放av| www.激情五月.com| 狠狠爱在线视频一区| 欧美做受xxxxxⅹ性视频| 麻豆精品在线观看| 中国丰满熟妇xxxx性| 亚洲国产合集| 成人精品视频99在线观看免费 | 国产精品久久久久久久久久新婚 | 国产精品麻豆一区二区三区| 5566中文字幕一区二区电影| 日韩av男人天堂| 中文字幕av一区二区三区免费看 | www.五月婷婷| 一本色道久久综合亚洲91 | 亚洲中文字幕一区| 日本欧美在线观看| 国产va亚洲va在线va| 日韩国产一区二区| 好吊色欧美一区二区三区四区| 亚洲精品一区三区三区在线观看| 久99九色视频在线观看| 男人久久精品| 精品av久久707| 97精品人妻一区二区三区在线| 香蕉成人伊视频在线观看| 精品一区二区在线观看视频| 99精品视频在线观看免费| 亚洲小视频网站| 久久福利精品| 欧美大黑帍在线播放| 欧美成免费一区二区视频| 国内一区在线| 日韩中文一区二区| 国产日本欧美一区| 亚洲日本天堂| 欧美精品福利在线| 国产在线1区| 一区二区三区视频免费| 亚洲色欧美另类| 欧美va日韩va| 91av国产精品| 欧美图区在线视频| 亚洲婷婷综合网| 精品福利视频导航| 天天操天天操天天操天天操天天操| av中文字幕不卡| 成人三级做爰av| 狠狠色伊人亚洲综合成人| 不卡av免费在线| 日一区二区三区| 成人av一级片| 国产精品日韩久久久| 日韩精品在线观看av| 亚洲激情五月| 男女爱爱视频网站| 婷婷六月综合| gogogo免费高清日本写真| 久久精品高清| 无遮挡亚洲一区| 精品影片在线观看的网站| 久久影视中文粉嫩av| 林ゆな中文字幕一区二区| 国产精品污www一区二区三区| 亚洲综合影院| 国产精品一区二区欧美| jazzjazz国产精品麻豆| 国产精品日韩高清| 国产精品传媒| 精品国产免费人成电影在线观... 精品国产免费久久久久久尖叫 | 最新真实国产在线视频| 一夜七次郎国产精品亚洲| 国产在线观看免费| 在线观看国产欧美| 777电影在线观看| 日韩中文字幕视频在线观看| 免费黄色在线| 欧美成人免费在线观看| 久久一卡二卡| 97热精品视频官网| 一二三四视频在线中文| 国产不卡精品视男人的天堂| 成人精品动漫| 91成人理论电影| 高清日韩中文字幕| 久久天堂国产精品| 日韩欧美视频| 无码人妻精品一区二区蜜桃百度| 黄色工厂这里只有精品| 美女日批免费视频| 日韩国产欧美三级| 成年人网站av| 成人爱爱电影网址| 国产视频三区四区| 亚洲色图.com| 国产精品免费av一区二区| 91福利在线观看| 国产片在线播放| 亚洲精品美女在线观看| 成人三级黄色免费网站| 久久成人国产精品| 国产精品蜜芽在线观看| 国产精品黄视频| 亚洲三级av| 欧美在线播放一区二区| 综合av在线| 97视频在线免费播放| 黑人巨大精品欧美黑白配亚洲| 国产+高潮+白浆+无码| 国产精品视频一区二区三区不卡| 精品99久久久久成人网站免费| 性感美女极品91精品| 91超薄丝袜肉丝一区二区| 精品免费国产二区三区| 成年人在线观看网站| 欧美精品国产精品日韩精品| 成人午夜sm精品久久久久久久| 91成人免费看| 欧美视频网址| 色欲色香天天天综合网www| 免费国产亚洲视频| 三级视频网站在线观看| 中文字幕一区二区日韩精品绯色| 国产特黄大片aaaa毛片| 91麻豆精品久久久久蜜臀| 青青免费在线视频| 九九久久精品一区| 久久国内精品| 欧美日韩亚洲免费| 国产一区激情| 亚洲18在线看污www麻豆| 久久综合一区二区| 欧美极品aaaaabbbbb| 欧美日韩一区中文字幕| 五月天婷婷在线播放| 精品自拍视频在线观看| 中韩乱幕日产无线码一区| 久久99影院| 亚洲精华国产欧美| 日本高清免费在线视频| 欧美国产精品一区二区| 制服.丝袜.亚洲.中文.综合懂色| 日韩欧美精品在线视频| 毛片在线播放a| 国产精品女主播| 国产成人调教视频在线观看| 国产亚洲综合视频| hitomi一区二区三区精品| 中文字幕av免费在线观看| 欧美日韩国产中文| jzzjzzjzz亚洲成熟少妇| 欧美最顶级丰满的aⅴ艳星| 福利电影一区| 激情小视频网站| 粉嫩av一区二区三区在线播放| 永久久久久久久| 欧美一区二区三区免费| 欧美成人精品一区二区男人看| 国产精品美女无圣光视频| 国产中文精品久高清在线不| 午夜精品久久久久久久无码| 99久久亚洲一区二区三区青草| 久久精品这里只有精品| 精品久久99ma| 成人三级小说| 激情一区二区三区| 先锋影音久久| 免费看黄色的视频| 欧美性大战久久久| 69xxxx欧美| 成人综合国产精品| 欧美一区在线看| wwwww在线观看| 亚洲成人av福利| 色呦呦中文字幕| 欧美在线中文字幕| 一个色免费成人影院| 国产精品天天av精麻传媒| 国产亚洲一区二区三区四区| 日本视频免费观看| 自拍偷拍亚洲在线| 韩国一区二区三区视频| 国产精品久久国产| 91在线码无精品| 国产午夜无码视频在线观看| 一色桃子一区二区| 日韩一级淫片| 欧美激情 国产精品| 国产亚洲综合色| 国产又爽又黄免费软件| 欧美精品在线播放| 日韩成人av在线资源| 992kp快乐看片永久免费网址| 国产精品的网站| 亚洲成人77777| 日韩免费观看视频| 天天综合网91| 影音先锋人妻啪啪av资源网站| 色噜噜夜夜夜综合网| 米奇777四色精品人人爽| 99在线首页视频| 日韩专区欧美专区| 无码黑人精品一区二区| 亚洲精品动漫久久久久| 精品久久在线| 午夜免费福利小电影| 国产精品网站在线观看| 精品乱子伦一区二区| 亲子乱一区二区三区电影| 天天综合一区| av直播在线观看| 91精品国产色综合久久| 天堂中文最新版在线中文| 午夜欧美性电影| 成人动漫一区二区三区| 99成人精品视频| 久久久久久久国产精品| 精品久久久久久久| 伊人网综合视频| 88在线观看91蜜桃国自产| 国模套图日韩精品一区二区| 中文字幕色呦呦| 国产精品人成在线观看免费| 手机在线观看毛片| 91在线中文字幕| 日韩激情av在线|