在学习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的打印功能会更加的强大和完善。
【编辑推荐】