這篇文章主要為大家展示了“Silverlight4和Flex4打印功能有什么區(qū)別和聯(lián)系”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Silverlight4和Flex4打印功能有什么區(qū)別和聯(lián)系”這篇文章吧。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),鳩江企業(yè)網(wǎng)站建設(shè),鳩江品牌網(wǎng)站建設(shè),網(wǎng)站定制,鳩江網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,鳩江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
Silverlight4和Flex4打印功能大比拼
Silverlight作為一門(mén)新技術(shù)推出已經(jīng)三年,在Silverlight早期版本,大家都認(rèn)為Silverlight的功能無(wú)法和Flex進(jìn)行對(duì)比,更是無(wú)法超越Flex,在2009年11月,微軟推出了Silverlight4測(cè)試版本,以其強(qiáng)大的功能又一次吸引了眾多開(kāi)發(fā)人員的眼球,許多曾經(jīng)在Flex下支持的功能,現(xiàn)在Silverlight下已經(jīng)可以實(shí)現(xiàn),而且還有一些新的功能,F(xiàn)lex無(wú)法實(shí)現(xiàn)。例如,Silverlight4的COM組件交互,從桌面拖拉對(duì)象到Silverlight應(yīng)用等功能。為了使更多的開(kāi)發(fā)人員了解Silverlight開(kāi)發(fā)平臺(tái),我將對(duì)Silverlight4和Flex4進(jìn)行一系列的對(duì)比,希望能幫助開(kāi)發(fā)人員了解更多Silverlight新功能。本文,將對(duì)Silverlight4和Flex4的打印功能進(jìn)行對(duì)比。
Silverlight4打印功能
Silverlight4的打印功能石油PrintDocument類(lèi)進(jìn)行控制,實(shí)現(xiàn)打印功能需要按照以下步驟:
步驟1:建立PrintDocument對(duì)象;
步驟2:在PrintDocument對(duì)象中設(shè)置文檔名;
步驟3:添加事件句柄到PrintPage事件中,同時(shí)也可以添加到StartPrint和EndPrint事件中;
步驟4:在PrintPage打印事件中,建立一個(gè)打印窗口,該窗口將作為父窗口出現(xiàn),可以添加想打印的內(nèi)容或者控件到該打印窗口。例如建立一個(gè)StackPanel,然后在StackPanel中添加想打印的內(nèi)容控件;
步驟5:在打印時(shí),如果HasMorePages為T(mén)rue,說(shuō)明支持多個(gè)頁(yè)面進(jìn)行打印;
步驟6:重復(fù)4和5步驟,就可以實(shí)現(xiàn)完整的Silverlight4打印功能;
看起來(lái)這些步驟是不是很簡(jiǎn)單。下面提供一個(gè)例程代碼,點(diǎn)擊打印按鈕后,會(huì)打印出“HelloWorld”。
usingSystem; usingSystem.Windows; usingSystem.Windows.Controls; usingSystem.Windows.Printing; namespaceHelloPrinter { publicpartialclassMainPage:UserControl { publicMainPage() { InitializeComponent(); } privatevoidbutton1_Click(objectsender,RoutedEventArgse) { PrintDocumentprintDoc=newPrintDocument(); printDoc.DocumentName="HelloWorldfromSilverlight"; printDoc.PrintPage+=newEventHandler(printDoc_PrintPage); printDoc.Print(); } voidprintDoc_PrintPage(objectsender,PrintPageEventArgse) { StackPanelpanel=newStackPanel(){OrientationOrientation=Orientation.Horizontal}; panel.Children.Add(newTextBlock(){Text="Hello", FontFamily=newSystem.Windows.Media.FontFamily("Arial"),FontSize=12}); panel.Children.Add(newTextBlock(){Text="World", FontFamily=newSystem.Windows.Media.FontFamily("Arial"),FontSize=12}); e.PageVisual=panel; e.HasMorePages=false; } } }
當(dāng)點(diǎn)擊按鈕后,會(huì)調(diào)用打印事件句柄,在打印過(guò)程中,Silverlight將自動(dòng)設(shè)置打印窗口的寬和高,可以通過(guò)PrintableArea屬性獲取在打印事件中獲取打印頁(yè)面的寬和高。
Flex4打印功能
Flex4的打印功能和Silverlight4打印功能步驟很相似,但是實(shí)現(xiàn)不同,F(xiàn)lex4的打印功能不是事件驅(qū)動(dòng),基本步驟如下:
步驟1:建立FlexPrintJob對(duì)象,可以把該對(duì)象看作Silverlight的PrintDocument;
步驟2:使用一個(gè)布爾變量控制要打印的圖片格式,例如是打印矢量圖還是打印位圖;
步驟3:調(diào)用FlexPrintJob中的Start()方法,這時(shí)會(huì)彈出提示窗口,詢問(wèn)是否開(kāi)始打印,選擇確定,將開(kāi)始打印;
步驟4:建立一個(gè)打印對(duì)象,并添加這個(gè)打印對(duì)象到現(xiàn)實(shí)列表中;
步驟5:使用FlexPrintJob中的addObject()添加對(duì)象到打印頁(yè)面中;
步驟6:調(diào)用FlexPrintJob中的send()方法,對(duì)添加的打印頁(yè)面進(jìn)行打印;
步驟7:打印后,刪除已經(jīng)打印的視圖對(duì)象;
下面提供按鈕事件代碼,點(diǎn)擊按鈕后,會(huì)打印出“HelloWorld”。
protectedfunctionbutton1_clickHandler(event:MouseEvent):void { varjob:FlexPrintJob=newFlexPrintJob(); job.printAsBitmap=false; if(job.start()){ vargroup:HGroup=newHGroup(); group.height=job.pageHeight; group.width=job.pageWidth; vartext:SimpleText=newSimpleText(); text.text="Hello"; text.setStyle("fontFamily","Arial"); text.setStyle("fontSize",12); group.addElement(text); text=newSimpleText(); text.setStyle("fontFamily","Arial"); text.setStyle("fontSize",12); text.text="World"; group.addElement(text); addElement(group); job.addObject(group,FlexPrintJobScaleType.NONE); job.send(); removeElement(group); }
對(duì)比上面的兩組打印代碼可以看出Flex實(shí)現(xiàn)打印需要多設(shè)置一些參數(shù),主要是因?yàn)椋?/p>
1.在Flex打印中,需要設(shè)置打印格式,是位圖模式,還是矢量圖模式;
2.Flex不支持自動(dòng)設(shè)置打印對(duì)象在打印頁(yè)面中的寬和高;
以上是“Silverlight4和Flex4打印功能有什么區(qū)別和聯(lián)系”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!