flex打印系列教程四 理解FlexPrintJob
来源:互联网 发布:淘宝运费模板物流重量 编辑:程序博客网 时间:2024/05/20 19:15
转载地址: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。
- flex打印系列教程四 理解FlexPrintJob
- flex打印操作(FlexPrintJob)还有分页打印操作
- flex打印系列教程一使用flex内置打印函数
- flex打印系列教程三用FlexReport打印多页
- flex打印系列教程二使用PrintDataGrid打印多页内容
- WEB打印系列教程
- WEB打印系列教程之四--简单的WEB打印分页设置
- Flex主题教程系列1--什么是Flex
- GCC系列教程 四
- WEB打印系列教程之四--使用ScriptX进行复杂的WEB打印设置、使用jatoolsPrinter控件进行WEB打印设置
- SAP ScriptForms 教程系列四
- MySQL系列教程(四)
- Flex主题教程系列3--Flex生命周期之出生时期
- Flex打印
- Flex打印
- Flex打印
- 深入理解JavaScript系列(四): 模块化编程
- RxJava理解系列(四)--observeOn
- 设计一个log(日志)类,加强程序的可测试性
- RMAN backups in Max Performance/Max Availability Data Guard Environment [ID 331924.1]
- SQL XML的查询操作
- RMAN Restore Database Slow / How To Improve RMAN Restore Performance [ID 467694.1]
- 【I/O】Byte Streams
- flex打印系列教程四 理解FlexPrintJob
- Linux下*.tar.bz2等文件如何解压
- SQL对Xml字段的操作
- How to Configure RMAN I/O Block Size to Improve Backup and Recovery Performance [ID 107213.1]
- 不能修改“System Roots”钥匙串
- Advise On How To Improve Rman Performance [ID 579158.1]
- 汉字转换成拼音和获取汉字的首字母及ASSCI码的转换
- Protocol delegate
- Flash游戏开发性能优化