flex打印系列教程四 理解FlexPrintJob

转载地址:http://bbs.9ria.com/redirect.php?tid=70396&goto=lastpost

什么是FlexPrintJob


flex 中,你经常要在你的 程序 里用FlexPintJob打印东西。
Adobe 的说法,FlexPrintJob是:
1:一个用来打印一个或多个物体的类
2:自动将大的物体分隔然后打印在多页上
3:自动缩放以适应打印页面大小

FlexPrintJob 和Flash PrintJob比较

FlexPrintJob 是一个Adobe Flex新增的一个打印类。在 flash 里面,有一个差不多类似的类,是PrintJob。

下面是为什么在Flex里面称它为FlexPrintJob:

flexPrintJob.addObject(myPrintObject,scaleType)
- myPrintObject是你想要打印的 组件
- scaleType 设置的适应打印页面的缩放类型(比如matchWidth, matchHeight, fillPage, showAll)

为了比较,下面是为什么在flash里面称它PrintJob

printJob.addPage(Sprite(myPrintObject), rectangle, printJobOptions)
- myPrintObject是你想要打印的组件
- rectangle是你定义的一个Rectangle打印区域
- printJboOptions为设置的打印格式是作为一个BitMap(位图)还是一个Vector(矢量图)

那么,两者之间的联系是什么呢?

FlexPrintJob实际上是PrintJob的一个包装类

在这里,包装类是指:

1.FlexPrintJob最终调用Flash PrintJob来完成打印工作

2.FlexPrintJob加强了Flash PrintJob的功能并且简化了它的使用

什么是FlexPrintJob新增的功能呢?

Adobe声称FlexPrintJob自动将大的物体分隔为多页并且缩放它们的大小以适应打印页面

为此,FlexPrintJob从以下8个步骤对PrintJob进行包装:

第1步:将百分比宽度或高度转换为明确的宽度或高度

第2步:基于打印页面大小和ScaleType(如matchWidth)计算缩放比例

第3步:缩放打印对象为所需的值

第4步:查找在垂直和水平方向所需的页数

第5步:创建一个矩形形状的打印区域

第6步:指定打印选项(位图或矢量)

第7步:调用flash PrintJob打印每一页

第8步:从明确的宽度或高度恢复到百分比的宽度或高度

FlexPrintJob缺少什么

FlexPrintJob在缩放输出以适合页面大小方面增强了Flash PrintJob的功能。但是,它是否足以打印在多个页面的大型对象?

也许...只要你不介意减少一半的文字或印刷或者打印出只有5%内容的TextArea或 DataGrid

由于事实上,要真正实现Flex中打印多个页面,需要解决以下3个问题:

1:如何从屏幕到打印机缩放显示对象

2:如何打印那些可滚动的组件(如DataGrid,TextArea)的完整内容?

3: 如何找到正确断页,以避免分隔对象(例如文本或图像)

通过 应用 FlexPrintJob,它并没有提供很好的方法来解决问题2和3。因此,当在Flex中打印多个页面时,你常常需要额外的帮助像PrintDataGrid或FlexReport。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值