探究Flex4打印功能的實現(xiàn)
在學(xué)習(xí)Flex的過程中,你可能會遇到Flex4打印功能的問題,這里和大家分享一下,F(xiàn)lex4打印功能和Silverlight4打印功能步驟很相似,但是實現(xiàn)不同,F(xiàn)lex4的打印功能不是事件驅(qū)動,基本步驟如下文介紹。
Flex4打印功能
Flex4打印功能和Silverlight4打印功能步驟很相似,但是實現(xiàn)不同,F(xiàn)lex4的打印功能不是事件驅(qū)動,基本步驟如下:
步驟1:建立FlexPrintJob對象,可以把該對象看作Silverlight的PrintDocument;
步驟2:使用一個布爾變量控制要打印的圖片格式,例如是打印矢量圖還是打印位圖;
步驟3:調(diào)用FlexPrintJob中的Start()方法,這時會彈出提示窗口,詢問是否開始打印,選擇確定,將開始打印;
步驟4:建立一個打印對象,并添加這個打印對象到現(xiàn)實列表中;
步驟5:使用FlexPrintJob中的addObject()添加對象到打印頁面中;
步驟6:調(diào)用FlexPrintJob中的send()方法,對添加的打印頁面進行打印;
步驟7:打印后,刪除已經(jīng)打印的視圖對象;
下面提供按鈕事件代碼,點擊按鈕后,會打印出“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);
- }
對比上面的兩組打印代碼可以看出Flex實現(xiàn)打印需要多設(shè)置一些參數(shù),主要是因為:
1.在Flex打印中,需要設(shè)置打印格式,是位圖模式,還是矢量圖模式;
2.Flex不支持自動設(shè)置打印對象在打印頁面中的寬和高;
總結(jié)
綜上所述,我們可以看出Flex4打印功能要比Silverlight的打印功能更加健全,F(xiàn)lex打印功能中的打印高質(zhì)量的矢量圖和自動分頁是兩個主要亮點,而當前Silverlight4中自動分頁是將要打印視圖對象切割成兩部分實現(xiàn)打印。而Silverlight4中打印功能的全編程模式也是Silverlight的亮點。從微軟對Silverlight的定位方向來看,相信在不久的將來,Silverlight的打印功能會更加的強大和完善。
【編輯推薦】