flex 打印 预览


  最近研究了一下 flexReport 开源项目,发现存在一下几个问题:
  1.打印时:启动很慢,同时可能出现很多空白页.
  2.预览的效果不是很好,预览出来的report page 不清楚.
  3.当数据量很大时,预览生成很慢.
  4.对于多列超出纸张大小时,不能够拆分表格.
  5.如果在body 中加入 图片,分页的效果就会失效.分页不正确.
  总的来说,虽然存在很多问题,但是设计思想是值得肯定的.
  目前在开发flex 打印预览 功能遇到的问题和解决问题如下。
  针对以上出现的问题,解决办法如下:
  1.由于flexReport 是以图片的方式预览,所以组件分页和生成图片的消耗内存,和处理时间很长,所以我做了以下方式处理,直接分页通过自定义组件呈现(report page :页眉,body,页脚),呈现预览时,如果是flex 3 版本 ,使用addChild(displayObject),
  removeChild(displayObject),如果是flex 4 版本 ,使用addElement(displayObject),removeElement(displayObj ect),来动态呈现。
  而不用把组件转成图片在呈现,节省了转换成图片的时间,因为转成一张A4 大小的图片,消耗的时间是76毫秒,如果数据量很大的情况下消耗的时间是非常长的。
  2.对于加入图片不能分页的原因,做了一下啊处理,需要算出图片的高度,来计算是否能够呈现在同一张纸张大小的页面上,不行进行分页处理,这种是属于最简单的方法。同时也能处理分页失效的问题。
  3.目前有一个问题是,缩略图的生成的时间还是比较长,对于大数据量来说是不可取的,这个有待思考的问题,提高性能。
  回头把打印预览功能整理出来,给大家共享。
  该组件有以下功能:
  1.导出csv\pdf\excel 格式文件
  2.预览 数据表,分页功能
  3.放大,缩小功能
  4.标题设置。
  5.页脚内容对齐方式。
  6.纸张大小,支持A3,A4,A5,B4,B5,
  7.页边距的设置。支持宽的(2厘米),窄的(0.5厘米),适中(1厘米)
  8.支持纸张方向(纵向、横向)预览。
  9.打印范围设置。
  10.有图形视图和表格视图的预览状态。
  11.可以对表格和图形单独打印,也可以一起打印。

猜你喜欢

转载自bh290bh.iteye.com/blog/1574395