`
fatherican
  • 浏览: 53050 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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。
分享到:
评论

相关推荐

    flex打印操作(FlexPrintJob)还有分页打印操作具体实现

    Flex中的打印操作和分页打印操作是实现数据输出的重要功能,本文将详细介绍FlexPrintJob类的使用以及分页打印的实现。 首先,FlexPrintJob类是用于在Adobe Flash Player中执行打印任务的类。它允许您打印Flex应用中...

    FlexReport打印

    报表布局:如果要在Flex中打印页面,你应该创建一个容器,并把它加入到FlexPrintJob中。它处理静态内容时没有什么大问题。但是如果创建动态报表,即你不知道在处理过程中会产生多少页的话,事情很快会变成噩梦。 多...

    flex通过AlivePDF生成PDF文档

    ### flex通过AlivePDF生成PDF文档 #### 知识点概览 本文将详细介绍如何使用Flex框架结合AlivePDF库来生成PDF文档。主要内容包括:AlivePDF的基本介绍、Flex环境搭建、AlivePDF类库详解以及实际代码示例分析。 ###...

    《Flex 3 组件实例与应用(2009版)》(PDF)

    FlexPrintJob组件用于处理打印任务,包括数据表格的打印。 #### PrintDataGridExample PrintDataGridExample演示如何打印DataGrid中的数据,提供了打印功能的示例代码。 ### 验证器和格式化器(Validators and ...

    Flex 3 组件实例与应用(2009版)

    - **FlexPrintJob/PrintDataGrid** - 打印相关的组件。 - **PrintDataGridExample** - 打印数据网格的例子。 - **FormPrintView/FormPrintHeader/FormPrintFooter** - 表单打印视图及相关组件。 #### 五、验证器与...

    Flex UI组件使用全集

    - **FlexPrintJob、PrintDataGrid**: 打印相关的组件,支持打印DataGrid等内容。 #### Validatorsandformatters(验证器与格式化器) - **Validators**: 用于验证用户输入的数据是否符合规则。 - **CreditCard...

Global site tag (gtag.js) - Google Analytics