Flex 4打印功能.doc_第1页
Flex 4打印功能.doc_第2页
Flex 4打印功能.doc_第3页
Flex 4打印功能.doc_第4页
Flex 4打印功能.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Flex 4打印功能Flex4的打印功能和Silverlight 4打印功能步骤很相似,但是实现不同,Flex 4的打印功能不是事件驱动,基本步骤如下:步骤1:建立FlexPrintJob对象, 可以把该对象看作Silverlight的PrintDocument;步骤2:使用一个布尔变量控制要打印的图片格式,例如是打印矢量图还是打印位图;步骤3:调用FlexPrintJob中的Start()方法,这时会弹出提示窗口,询问是否开始打印,选择确定,将开始打印;步骤4:建立一个打印对象,并添加这个打印对象到现实列表中;步骤5:使用FlexPrintJob中的addObject()添加对象到打印页面中;步骤6:调用FlexPrintJob中的send()方法,对添加的打印页面进行打印;步骤7:打印后,删除已经打印的视图对象;下面提供按钮事件代码,点击按钮后,会打印出“Hello World”。protected function button1_clickHandler(event:MouseEvent):voidvar job : FlexPrintJob = new FlexPrintJob();job.printAsBitmap = false;if(job.start() var group : HGroup = new HGroup();group.height = job.pageHeight;group.width = job.pageWidth;var text : SimpleText = new SimpleText();text.text = Hello ;text.setStyle(fontFamily, Arial);text.setStyle(fontSize,12);group.addElement(text);text = new SimpleText();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中的打印技术时间:2009-06-29 20:40来源:未知 作者:admin 点击: 次总结了一下打印技术。大家看看吧。 1.简单的例子 ?xml version=1.0 encoding=utf-8? mx:Application xmlns:mx=/2006/mxml layout=absolute fontSize=12 mx:Script !CDATA import mx.printing.FlexPrintJob; publi 总结了一下打印技术。大家看看吧。1.简单的例子 2.实现Datagrid的打印组件FormPrintHeader.mxml: 组件FormPrintFooter.mxml: 组件FormPrintView.mxml: 最后就是主要的文件了:main.mxml: !CDATA import mx.printing.*; import mx.collections.ArrayCollection; import FormPrintView;/引入自定义的组件 Bindable public var dgProvider:ArrayCollection = new ArrayCollection; public var footerHeight:Number = 20; public var prodTotal:Number = 0; public var flag:Number; / 生成数据以填充表格 public function setdgProvider(max:int):void flag=1; dgProvider.removeAll();/清空所有数据 for (var i:int=0; i 3.实现Datagrid的打印预览与打印组件MyPrintView.mxml: PrintDatagrid.mxml: Flex打印 之 横向打印&多页打印2009-03-03 10:10创Flex提供两种打印方法:FlexPrintJob和PrintJob。一、由于flex是打印图像的缘故,打印出来的文字、表格会不清晰。解决方法如下:1、将FlexPrintJob中printAsBitmap属性设置为true。2、使用PrintJob二、打印缩放的解决方法1、FlexPrintJob.addObject()中 scaleType 可以使用 FlexPrintJobScaleType,FlexPrintJobScaleType中定义了缩放的几种常见方式。2、PrintJob默认为不缩放输出,如需要缩放可以使用 scale 属性 var pj:PrintJob = new PrintJob(); var xScale:Number; var yScale:Number; xScale = (pj.pageWidth / this.height); yScale = (pj.pageHeight / this.width); this.scaleX= Math.min(xScale, yScale); this.scaleY = Math.min(xScale, yScale); pj.addPage(this); pj.send();三、打印的横向和纵向的控制1、判断打印方向利用 PrintJob.orientation(图像打印方向) 判断,PrintJob.orientation = PrintJobOrientation.LANDSCAPE 或者 PrintJobOrientation.PORTRAIT(LANDSCAPE表示横向打印;PORTRAIT表示纵向打印)2、如需改变方向 this.rotation = 90; 即表示旋转90度3、转动后文字消失问题绝大多数文字在转动后会出现消失问题,是由于字体的缘故。有两个解决方法:(1)将字体加载到文件中,该方法缺点是对于中文而言消耗大,通常达到几M,英文常在几十K内。也可以用外嵌字体,将字体打包成另外一个swf文件,然后由主flash文件去外部调用 font-face fontFamily: simhei;src: url(assets/simhei.ttf);fontWeight: normal; global fontFamily: simsun;fontWeight: normal;fontSize: 10;color:#000000; private function completeHandle(e:Event):void fontClass = Object(e.target.content).loaderInfo.applicationDomain.getDefinition(Font1) as Class Font.registerFont(fontClass); tt.styleName = myPlainStyle tt.rotation = 30; (2)使用Bitmap和Bitmapdata类,将文字转化为图像后再转动。该方法消耗小,但是文字有可能失真,而且对每个文字组件都要进行转换。 var bmp:BitmapData = new BitmapData(aa.width,aa.height,true); bmp.draw(aa); var bt:Bitmap = new Bitmap(bmp); var img:Image = new Image(); img.source = bt; img.x = 200; img.y = 200;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论