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

.NET Framework打印詳細分析

開發 后端
.NET Framework打印主要包括以下幾個操作步驟,包括:打印設置;頁面設置;打印預覽;以及最后的結果打印。其中有一個核心類叫做:PrintDocument。

如果你是一名開發人員,就不應該不知道.NET Framework。它的作用在編程人員眼中是非常強大的。.NET Framework打印功能都以組件的方式提供,為程序員提供了很大的方便,但是這幾個組件的使用還是很復雜的,有必要解釋一下。 #t#

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

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

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

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

4 打印

實現打印功能的核心是PrintDocument類這個類屬于System.Drawing.Printing名字空間這個類封裝了當前的打印設置頁面設置以及所有的與打印有關的事件和方法。這個類包括以下幾個屬性 事件 和方法:

1、PrinterSettings 屬性

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

2、PrintCountroller 屬性

控制.NET Framework打印過程

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.print
    Document_PrintPage);   
  7. ...   
  8. }  

實現.NET Framework打印事件功能

打印和繪圖類v似都是調用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. //左邊距   
  9. float topMargin = e.MarginBounds.Top; 
  10. //上邊距   
  11. string line = null; 行字符串   
  12. Font printFont = this.textBox.Font; 
  13. //當前的打印字體   
  14. SolidBrush myBrush = new SolidBrush
    (Color.Black);//刷子   
  15. linesPerPage = e.MarginBounds.Height / 
    printFont.GetHeight(g);//每頁可打印的行數   
  16. //逐行的循環打印一頁   
  17. while(count < linesPerPage && ((line=
    lineReader.ReadLine()) != null))   
  18. {   
  19. yPosition = topMargin + (count * 
    printFont.GetHeight(g));   
  20. g.DrawString(line, printFont, myBrush, 
    leftMargin, yPosition, new StringFormat());   
  21. count++;   

如果本頁打印完成而line不為空說明還有沒完成的頁面這將觸發下一次的打印事件在下一次的打印中lineReader會

自動讀取上次沒有打印完的內容因為lineReader是這個打印方法外的類的成員它可以記錄當前讀取的位置

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

.NET Framework打印設置,構造打印對話框 將對話框中設置的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();   

.NET Framework打印預覽

  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()方法因為用戶可能在打印之前還要再更改打印設置所以

在這里再次顯示.NET Framework打印設置對話框

  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. }   

總結.NET Framework打印的過程是

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

2 實現PrintPage方法 4 在用戶的單擊事件中調用 printDocument 的 Print方法實現打印功能

在這中間可能要用到 PrintDialog PrintPreviewDialog PageSetupDialog 設置和查看打印效

果這些方法通常是由菜單的單擊觸發的。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-10-28 10:06:29

VB.NET With

2009-10-12 15:41:09

VB.NET動態代碼

2009-10-10 15:19:43

VB.NET Web

2009-09-28 10:39:01

Hibernate基礎

2009-09-25 14:23:39

2009-09-09 09:48:43

Linq延遲加載

2009-06-18 14:00:51

2009-10-10 13:52:57

VB Update方法

2009-09-14 16:21:34

LINQ To XML

2009-09-14 13:50:35

LINQ編程模型

2009-09-08 15:56:50

Linq使用Group

2009-11-20 13:11:44

Oracle XML數

2010-04-26 18:17:19

Oracle存儲過程

2009-12-07 15:37:00

WCF控件

2009-09-03 17:57:06

C#聲明事件

2009-03-24 08:30:54

AndroidGoogle移動os

2009-12-16 14:09:14

Visual Stud

2011-09-24 12:34:03

2009-09-04 15:43:07

C#流模型

2009-09-07 13:19:44

C#線程同步
點贊
收藏

51CTO技術棧公眾號

欧美日韩在线播放三区四区| 久久影院视频免费| 欧美激情在线观看视频| 在线免费观看成年人视频| 经典三级一区二区| 玉米视频成人免费看| 欧美高清性xxxxhdvideosex| 一级全黄裸体免费视频| 亚洲性视频h| 一区三区二区视频| 先锋资源在线视频| 成人一区福利| 亚洲综合一区二区三区| 久久精品欧美| 午夜免费福利视频| 麻豆成人久久精品二区三区红 | 国产精品国产三级国产专区53 | 欧美va亚洲va| 中文字幕网av| 亚洲日本天堂| 亚洲一二三四区不卡| 亚洲精品高清视频| 欧美挠脚心网站| 成人精品一区二区三区中文字幕| 国产精品热视频| 国产成人在线视频观看| 综合色一区二区| 在线视频日本亚洲性| 亚洲综合自拍网| av综合网址| 91麻豆精品国产| 中文字幕亚洲乱码| 97久久香蕉国产线看观看| 亚洲va国产va欧美va观看| 国产高清免费在线| 男人影院在线观看| 日本一区二区在线不卡| 欧美一区2区三区4区公司二百| 亚洲美女性生活| 国产一区二区视频在线| 成人国产在线视频| 中文字幕人妻精品一区| 久久精品免费| 国产91色在线|| 六月丁香婷婷综合| 亚洲综合丁香| 国产mv免费观看入口亚洲| 草久久免费视频| 国产亚洲午夜| 日本一本a高清免费不卡| 美日韩一二三区| 噜噜噜躁狠狠躁狠狠精品视频 | 免费黄色网址在线| 国产亚洲毛片| 国产99久久精品一区二区| 国产黄色片免费看| 国产精品夜夜夜| 青青a在线精品免费观看| 中文字幕一区二区人妻电影| 久久中文字幕一区二区三区| 国产成人精品在线观看| 激情网站在线观看| 麻豆国产精品777777在线| 国产精品入口福利| 国产精品爽爽久久久久久| 国产精品一二三区| 国模精品娜娜一二三区| 色视频在线观看| 久久九九全国免费| 亚洲一区不卡在线| 超碰人人在线| 香蕉成人啪国产精品视频综合网| 日日橹狠狠爱欧美超碰| 另类专区亚洲| 91精品国产高清一区二区三区蜜臀| 日韩av福利在线观看| 日本亚洲视频| 精品视频久久久久久| 日韩一级av毛片| 天天天综合网| 久久久免费精品视频| 成人免费一级片| 韩国成人福利片在线播放| 国产精品yjizz| 国产三级在线| 一区二区三区自拍| 999香蕉视频| 国产在线视频欧美一区| 日韩精品极品视频| 我要看一级黄色录像| 黄色日韩在线| 国产精品久久久久免费a∨大胸| 国产精品嫩草影院桃色| 99精品视频在线观看免费| 亚欧洲精品在线视频免费观看| 二区三区四区高清视频在线观看| 香蕉加勒比综合久久| 亚洲国产日韩欧美在线观看| 国产ts一区| 色综合伊人色综合网站| 亚洲精品www久久久久久| 久久精品国产精品青草| 极品日韩久久| av免费在线观看网站| 在线中文字幕一区| 91超薄肉色丝袜交足高跟凉鞋| 欧美色女视频| 91精品国产沙发| 国产免费av电影| 国产欧美1区2区3区| av免费观看大全| 玖玖精品一区| 视频在线一区二区| 在线天堂中文字幕| av影院午夜一区| 91成人在线视频观看| 黄瓜视频成人app免费| 亚洲精品在线免费观看视频| 天天操夜夜操av| 久久九九精品| 鲁丝片一区二区三区| 青草在线视频| 欧美一区二区三区四区在线观看| 亚洲a v网站| 夜夜嗨一区二区| 99久久精品免费看国产一区二区三区 | 国产精品综合在线视频| 亚洲欧美精品在线观看| 性高爱久久久久久久久| 日韩电影中文 亚洲精品乱码| 九九热只有精品| 国产麻豆91精品| 欧美h视频在线观看| 婷婷精品久久久久久久久久不卡| 一区二区在线免费视频| 国产裸体美女永久免费无遮挡| 99国产精品久久久久久久久久| www.好吊操| 北条麻妃一区二区三区在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲一卡二卡在线| 国产精品国产精品国产专区不片| 亚洲天堂av线| 欧美先锋资源| 国产精品美女主播| 无遮挡的视频在线观看| 欧美日本一区二区| 国产wwwwxxxx| 国产真实乱偷精品视频免| 懂色av粉嫩av蜜臀av| 精品国产一区二| 欧美精品免费在线观看| 性欧美一区二区三区| 亚洲自拍与偷拍| 野战少妇38p| 国产精品久久久久毛片大屁完整版 | 人人爽人人av| 水蜜桃久久夜色精品一区| 成人免费观看网址| 搞黄网站在线看| 亚洲精品第一页| 天天干天天色综合| 国产人妖乱国产精品人妖| 日本不卡一区在线| 最新欧美人z0oozo0| 国产精品theporn88| 永久免费毛片在线播放| 一色桃子一区二区| 国产视频在线免费观看| 午夜精品aaa| 欧美激情视频二区| 国产在线精品一区二区三区不卡| 成人区一区二区| 一区二区小说| 成人av.网址在线网站| 欧美黑人猛交的在线视频| 日韩hd视频在线观看| 中文字幕av网站| 亚洲精品国久久99热| 日韩aaaaa| 美女免费视频一区二区| 激情成人开心网| 亚洲婷婷伊人| 91精品啪aⅴ在线观看国产| 久色国产在线| 在线视频欧美日韩精品| 丰满少妇被猛烈进入| 91九色最新地址| 欧美日韩成人免费观看| 久久精品综合网| 成人免费黄色av| 肉肉av福利一精品导航| 免费的av在线| 精品福利久久久| 99在线影院| 成人看片毛片免费播放器| 久久青草福利网站| 日韩伦理在线电影| 亚洲美女在线看| 亚洲第一精品网站| 欧美天天综合网| 中文字幕视频网站| 亚洲激情五月婷婷| 最新日韩免费视频| 91香蕉视频污| 三大队在线观看| 免费观看日韩电影| av动漫在线看| 欧美日韩久久| 尤物一区二区三区| 欧美日韩第一| 久久久久久九九九九| 在线精品国产亚洲| 成人午夜两性视频| 国产经典一区| 热久久免费视频精品| 成人性生交大片免费看在线播放| 日韩中文娱乐网| 可以直接在线观看的av| 亚洲国产婷婷香蕉久久久久久| 99久久夜色精品国产亚洲| 欧美在线一区二区三区| 青青草免费观看视频| 香蕉成人啪国产精品视频综合网| 欧美交换国产一区内射| 日韩毛片一二三区| 男人晚上看的视频| 国产精品视频麻豆| 黄色片网站免费| 国产欧美综合在线| 好吊视频在线观看| 久久久精品国产免大香伊| av网站有哪些| 91麻豆免费看| 亚洲AV无码国产精品| 99久久99久久精品国产片果冻| 国内精品免费视频| 成人午夜电影久久影院| 苍井空张开腿实干12次| 国产69精品久久99不卡| 日韩成人av影院| 成人看片黄a免费看在线| 日本久久久久久久久久| 成人午夜在线免费| 欧美在线一级片| 91麻豆swag| 99久久人妻无码精品系列| 日本一区二区三区dvd视频在线| 国产一二三四五区| 国产午夜精品久久| 国产视频123区| 亚洲欧美偷拍三级| 美女毛片在线观看| 亚洲图片欧美一区| 国产精品久久久久久99| 一本大道久久a久久精品综合| 影音先锋在线国产| 欧美性大战久久久久久久| 亚洲综合精品国产一区二区三区| 777久久久精品| 亚洲国产精品欧美久久| 亚洲精品久久久久久久久久久久| 天堂a中文在线| 伊人男人综合视频网| 欧美三级黄网| 久久久午夜视频| 欧美动物xxx| 成人午夜黄色影院| 久久婷婷国产| 日韩欧美视频一区二区| 亚洲精品成人| 国产乱子伦农村叉叉叉| 三级欧美韩日大片在线看| 天天综合天天添夜夜添狠狠添| 国产精品一区免费视频| 亚洲av无码一区二区三区观看| 国产亚洲一区二区三区在线观看 | 亚洲午夜电影在线观看| 欧美一区二区三区网站| 欧美三级一区二区| 韩国av永久免费| 亚洲少妇中文在线| 91cn在线观看| 欧美一区二区三区精品电影| 日本国产一区| 国产综合18久久久久久| 清纯唯美日韩| 欧美一区二区视频在线播放| 久久精品电影| 亚洲911精品成人18网站| 91蜜桃免费观看视频| 免费中文字幕日韩| 午夜久久久久久电影| 亚洲综合网av| 亚洲精品在线91| 色www永久免费视频首页在线| 日韩av免费在线| 成人av影音| 亚洲国产激情一区二区三区| 亚洲黄色一区| 91欧美一区二区三区| 国产三级三级三级精品8ⅰ区| 久草国产在线观看| 欧美日韩亚洲综合一区| 天堂中文在线资| 久久91精品国产91久久久| 123成人网| 麻豆一区区三区四区产品精品蜜桃| 欧美影院一区| 一道本在线免费视频| 久久久夜色精品亚洲| 69精品久久久| 日韩无一区二区| 欧美r级在线| 国产精品久久久久久久久久ktv| 久久人人爽人人爽人人片av不| 99久久99久久精品| 九九视频精品免费| 国产视频不卡在线| 色狠狠综合天天综合综合| 日本加勒比一区| 欧美激情va永久在线播放| 懂色av色香蕉一区二区蜜桃| 视频一区二区在线观看| 久久亚洲图片| 小早川怜子久久精品中文字幕| 亚洲1区2区3区视频| 国产综合在线播放| 欧美俄罗斯性视频| 国产欧美视频在线| 自拍偷拍视频在线| 精品一区二区三区香蕉蜜桃| 黄色一级片一级片| 欧美视频在线观看一区二区| 韩国精品视频| 国产激情久久久久| 精品一区二区三| 在线观看av日韩| 中文字幕免费观看一区| 在线观看免费视频一区| 日韩中文字幕国产精品| 91九色成人| 黄色网址在线免费看| 国产传媒久久文化传媒| 麻豆亚洲av成人无码久久精品| 欧美tk—视频vk| 成人在线免费观看黄色| 久久精品国产99精品国产亚洲性色| aⅴ色国产欧美| a级大片在线观看| 在线观看av不卡| 午夜在线观看视频| 91精品国产91久久久久青草| 午夜精品亚洲| 又黄又爽的网站| 黑丝美女久久久| 国产亚洲依依| 91久久精品国产91性色| 欧美日韩精品| 老牛影视av老牛影视av| 欧美性受xxxx| 国产美女在线观看| 国产精品一区二| 久久激情一区| 登山的目的在线| 精品免费国产二区三区| 成人av三级| 亚洲午夜精品久久久久久浪潮| 国产自产高清不卡| 亚洲精品视频在线观看免费视频| 亚洲欧美一区二区三区四区| 四虎视频在线精品免费网址| 欧美中日韩在线| 久久久精品蜜桃| 国产精品一区二区免费视频| 久久久免费电影| 欧美日韩亚洲在线观看| 一级片免费在线观看视频| 精品日本美女福利在线观看| 日本免费在线观看| 国产一区二区免费在线观看| 日本美女一区二区| 国产一级做a爱免费视频| 亚洲午夜未满十八勿入免费观看全集| 青青青国产精品| 噜噜噜久久亚洲精品国产品麻豆| 国产欧美精品一区二区三区四区| 国内精品久久久久久久久久久| 热久久免费视频精品| 国产精品mv在线观看| 成人乱码一区二区三区av| 日韩片之四级片| 日韩精品三区| 全黄性性激高免费视频| 国产精品久久久久一区二区三区| 懂色av成人一区二区三区| 国产精品视频一区二区高潮| 99国内精品| 99热精品免费| 色婷婷久久av|