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