探究Flex4打印功能的實(shí)現(xiàn)
在學(xué)習(xí)Flex的過(guò)程中,你可能會(huì)遇到Flex4打印功能的問(wèn)題,這里和大家分享一下,F(xiàn)lex4打印功能和Silverlight4打印功能步驟很相似,但是實(shí)現(xiàn)不同,F(xiàn)lex4的打印功能不是事件驅(qū)動(dòng),基本步驟如下文介紹。
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è)面中的寬和高;
總結(jié)
綜上所述,我們可以看出Flex4打印功能要比Silverlight的打印功能更加健全,F(xiàn)lex打印功能中的打印高質(zhì)量的矢量圖和自動(dòng)分頁(yè)是兩個(gè)主要亮點(diǎn),而當(dāng)前Silverlight4中自動(dòng)分頁(yè)是將要打印視圖對(duì)象切割成兩部分實(shí)現(xiàn)打印。而Silverlight4中打印功能的全編程模式也是Silverlight的亮點(diǎn)。從微軟對(duì)Silverlight的定位方向來(lái)看,相信在不久的將來(lái),Silverlight的打印功能會(huì)更加的強(qiáng)大和完善。
【編輯推薦】