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

Silverlight4和Flex4打印功能在線PK

開發 后端
本文向大家介紹一下Silverlight4和Flex4打印功能大比拼,Silverlight作為一門新技術推出已經三年,許多曾經在Flex下支持的功能,現在Silverlight下已經可以實現。

本文和大家重點討論一下Silverlight4和Flex4打印功能有什么區別和聯系,許多曾經在Flex下支持的功能,現在Silverlight下已經可以實現,而且還有一些新的功能,Flex無法實現。

Silverlight4和Flex4打印功能大比拼

Silverlight作為一門新技術推出已經三年,在Silverlight早期版本,大家都認為Silverlight的功能無法和Flex進行對比,更是無法超越Flex,在2009年11月,微軟推出了Silverlight4測試版本,以其強大的功能又一次吸引了眾多開發人員的眼球,許多曾經在Flex下支持的功能,現在Silverlight下已經可以實現,而且還有一些新的功能,Flex無法實現。例如,Silverlight4的COM組件交互,從桌面拖拉對象到Silverlight應用等功能。為了使更多的開發人員了解Silverlight開發平臺,我將對Silverlight4和Flex4進行一系列的對比,希望能幫助開發人員了解更多Silverlight新功能。本文,將對Silverlight4和Flex4的打印功能進行對比。

Silverlight4打印功能

  Silverlight4的打印功能石油PrintDocument類進行控制,實現打印功能需要按照以下步驟:

  步驟1:建立PrintDocument對象;

  步驟2:在PrintDocument對象中設置文檔名;

  步驟3:添加事件句柄到PrintPage事件中,同時也可以添加到StartPrint和EndPrint事件中;

  步驟4:在PrintPage打印事件中,建立一個打印窗口,該窗口將作為父窗口出現,可以添加想打印的內容或者控件到該打印窗口。例如建立一個StackPanel,然后在StackPanel中添加想打印的內容控件;

  步驟5:在打印時,如果HasMorePages為True,說明支持多個頁面進行打印;

  步驟6:重復4和5步驟,就可以實現完整的Silverlight4打印功能;

  看起來這些步驟是不是很簡單。下面提供一個例程代碼,點擊打印按鈕后,會打印出“HelloWorld”。

  1. usingSystem;  
  2.  
  3. usingSystem.Windows;  
  4. usingSystem.Windows.Controls;  
  5.  
  6. usingSystem.Windows.Printing;  
  7.  
  8. namespaceHelloPrinter  
  9.  
  10. {  
  11.  
  12. publicpartialclassMainPage:UserControl  
  13.  
  14. {  
  15.  
  16. publicMainPage()  
  17. {  
  18.  
  19. InitializeComponent();  
  20.  
  21. }  
  22. privatevoidbutton1_Click(objectsender,RoutedEventArgse)  
  23. {  
  24.  
  25. PrintDocumentprintDoc=newPrintDocument();  
  26.  
  27. printDoc.DocumentName="HelloWorldfromSilverlight";  
  28.  
  29. printDoc.PrintPage+=newEventHandler(printDoc_PrintPage);  
  30.  
  31. printDoc.Print();  
  32. }  
  33.  
  34. voidprintDoc_PrintPage(objectsender,PrintPageEventArgse)  
  35. {  
  36.  
  37. StackPanelpanel=newStackPanel(){OrientationOrientation=Orientation.Horizontal};  
  38.  
  39. panel.Children.Add(newTextBlock(){Text="Hello",  
  40.  
  41.   FontFamily=newSystem.Windows.Media.FontFamily("Arial"),FontSize=12});  
  42.  
  43. panel.Children.Add(newTextBlock(){Text="World",  
  44.  
  45.   FontFamily=newSystem.Windows.Media.FontFamily("Arial"),FontSize=12});  
  46.  
  47. e.PageVisual=panel;  
  48.  
  49. e.HasMorePages=false;  
  50.  
  51. }  
  52. }  
  53. }  
  54.  

  當點擊按鈕后,會調用打印事件句柄,在打印過程中,Silverlight將自動設置打印窗口的寬和高,可以通過PrintableArea屬性獲取在打印事件中獲取打印頁面的寬和高。#p#

Flex4打印功能

  Flex4的打印功能和Silverlight4打印功能步驟很相似,但是實現不同,Flex4的打印功能不是事件驅動,基本步驟如下:

  步驟1:建立FlexPrintJob對象,可以把該對象看作Silverlight的PrintDocument;

  步驟2:使用一個布爾變量控制要打印的圖片格式,例如是打印矢量圖還是打印位圖;

  步驟3:調用FlexPrintJob中的Start()方法,這時會彈出提示窗口,詢問是否開始打印,選擇確定,將開始打印;

  步驟4:建立一個打印對象,并添加這個打印對象到現實列表中;

  步驟5:使用FlexPrintJob中的addObject()添加對象到打印頁面中;

  步驟6:調用FlexPrintJob中的send()方法,對添加的打印頁面進行打印;

  步驟7:打印后,刪除已經打印的視圖對象;

  下面提供按鈕事件代碼,點擊按鈕后,會打印出“HelloWorld”。

  1. protectedfunctionbutton1_clickHandler(event:MouseEvent):void  
  2.  
  3. {  
  4.  
  5. varjob:FlexPrintJob=newFlexPrintJob();  
  6.  
  7. job.printAsBitmap=false;  
  8.  
  9. if(job.start()){  
  10.  
  11. vargroup:HGroup=newHGroup();  
  12.  
  13. group.height=job.pageHeight;  
  14.  
  15. group.width=job.pageWidth;  
  16.  
  17. vartext:SimpleText=newSimpleText();  
  18.  
  19. text.text="Hello";  
  20.  
  21. text.setStyle("fontFamily","Arial");  
  22.  
  23. text.setStyle("fontSize",12);  
  24.  
  25. group.addElement(text);  
  26.  
  27. text=newSimpleText();  
  28.  
  29. text.setStyle("fontFamily","Arial");  
  30.  
  31. text.setStyle("fontSize",12);  
  32.  
  33. text.text="World";  
  34.  
  35. group.addElement(text);  
  36.  
  37. addElement(group);  
  38.  
  39. job.addObject(group,FlexPrintJobScaleType.NONE);  
  40.  
  41. job.send();  
  42.  
  43. removeElement(group);  
  44.  
  45. }  
  46.  

 
  對比上面的兩組打印代碼可以看出Flex實現打印需要多設置一些參數,主要是因為:

  1.在Flex打印中,需要設置打印格式,是位圖模式,還是矢量圖模式;

  2.Flex不支持自動設置打印對象在打印頁面中的寬和高;

總結

綜上所述,我們可以看出Flex的打印功能要比Silverlight的打印功能更加健全,Flex打印功能中的打印高質量的矢量圖和自動分頁是兩個主要亮點,而當前Silverlight4中自動分頁是將要打印視圖對象切割成兩部分實現打印。而Silverlight4中打印功能的全編程模式也是Silverlight的亮點。從微軟對Silverlight的定位方向來看,相信在不久的將來,Silverlight的打印功能會更加的強大和完善。

【編輯推薦】

  1. Flex4教程中添加事件的3種方法
  2. 常用FlexBuilder快捷鍵用法指導
  3. Flex框架Riawave的定制應用
  4. 技術前沿 Flex2.0 從零開始實現文件上傳
  5. FlexBuilder開發方法及特點解析 

 

  


 

責任編輯:佚名 來源: cnblogs.com
相關推薦

2010-08-11 11:10:08

Flex4打印功能

2010-08-06 10:56:11

Flex4MyEclipse

2010-08-02 11:09:45

Flex4

2010-08-13 09:05:09

Flex4Halo

2010-08-10 09:08:29

HTMLTemplatFlex4

2010-08-12 14:31:42

Flex4

2010-08-13 14:45:58

Flex4布局

2010-07-27 10:03:57

Flex4

2010-08-02 11:26:21

Flex4

2010-08-12 14:51:40

Flex4

2010-08-13 10:30:30

Flex4

2010-08-12 14:58:12

Flex4

2009-07-16 14:09:24

Flex3到Flex4

2010-07-27 09:37:44

Flex

2010-08-10 09:25:42

Flex4

2010-08-11 09:01:41

Flex4布局

2010-08-02 12:44:01

Flex3Flex4

2010-07-27 10:11:04

Flex4

2010-08-02 14:04:29

Flex4教程

2010-08-12 15:10:17

Flex4
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲毛片网站 | 午夜精品久久久久久久久久久久 | 91精品中文字幕一区二区三区 | 国内自拍第一页 | 亚洲国产成人精品女人久久久野战 | 91精品国产乱码久久蜜臀 | 福利片一区二区 | 国产一区视频在线 | 成人一区二区三区 | 天天爽夜夜爽精品视频婷婷 | 欧美一级片在线观看 | wwwxxx日本在线观看 | 在线视频亚洲 | gav成人免费播放视频 | 久久99精品久久久久久国产越南 | 在线中文字幕亚洲 | 日韩精品久久一区 | 国产亚洲精品综合一区 | 国产成人精品一区二区三区网站观看 | 精品91久久| 亚洲国产伊人 | 99久久日韩精品免费热麻豆美女 | 国外激情av | 四虎最新 | 一区二区三区免费 | 成人h视频在线 | 日韩中文在线 | 91久久视频| 国产激情在线观看视频 | 天天欧美| 色综合视频 | 日本久久综合 | 精品区 | 久久这里只有精品首页 | 久久精品在线播放 | 在线观看电影av | 日韩精品二区 | 精品国产免费一区二区三区五区 | 欧美成人在线免费 | 欧美一区二区三区在线观看 | 免费在线看黄视频 |