`
fatherican
  • 浏览: 50214 次
  • 性别: 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)还有分页打印操作具体实现

    如果要使用分页效果,则必须使用标签"PrintAdvancedDataGrid"(Flex3中的标签)才能够实现分页效果,感兴趣的朋友可以参考下

    FlexReport打印

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

    员工考勤系统.docx

    员工考勤系统.docx

    基于STM32的调试模块的外设和时钟电路分析

    基于STM32的调试模块的外设和时钟电路分析。回顾 CMSIS、LL、HAL 库

    基于 UDP 的分布式毫米波雷达python代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    pyzmq-25.1.1b2-cp36-cp36m-musllinux_1_1_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    grpcio-1.7.0-cp35-cp35m-macosx_10_7_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    免费的浏览器内JSON到 CSV 转换器

    在处理 JSON 数据时,尤其是为了便于分析和共享,常常需要将其转换为 CSV 格式。免费的浏览器内 JSON 到 CSV 转换器为用户提供了简便而高效的方法来完成这一任务,无需额外的软件安装。这些工具通常基于 JavaScript,直接在浏览器中运行,适合开发者、数据分析师及其他需要转换数据格式的用户。 ### **免费 JSON 到 CSV 转换器的概述** **功能介绍** 1. **无安装要求** - **浏览器运行**:无需下载或安装任何软件,用户只需通过浏览器访问相应的在线工具,即可进行 JSON 到 CSV 的转换。 - **跨平台支持**:兼容 Windows、macOS、Linux 等操作系统,以及各种浏览器(如 Chrome、Firefox、Edge)。 2. **用户界面** - **简洁直观**:通常提供一个简单的文本框用于输入或粘贴 JSON 数据,并带有一个按钮或选项来触发转换。 - **即时转换**:点击转换按钮后,立即生成 CSV 数据,并提供下载链接或直接显示转换结果,便于复制或导出。 3. **支持大部分 JSON

    miflash_unlock.zip

    miflash_unlock.zip

    模型转换-OpenVINO模型IR-XML转换为onnx模型-附项目源码+使用教程-优质项目实战.zip

    模型转换_OpenVINO模型IR-XML转换为onnx模型_附项目源码+使用教程_优质项目实战

    pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    测试1111111111111111

    测试1111111111111111

    Hume AI发掘AI新赛道 大模型为人类提供情绪价值

    OpenAI在推出GPT-4之后,大模型各方面的功能都再次升级,但是聊天功能方面人工智能的回复还是过于理性,不能满足人类想要的情绪价值。不过为人类提供情绪价值,让聊天回复更像真人这件事儿,有个大模型正在做。不久前,Hume AI 宣布推出首个基于大语言模型的语音对话式聊天助手EmpatHic Voice Interface(EVI),主打一个“有情商”。

    人脸识别matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    18细石混凝土楼地面工程.doc

    18细石混凝土楼地面工程

    grpcio-1.22.1-cp35-cp35m-win_amd64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    grpcio-1.7.3-cp35-cp35m-macosx_10_7_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    cryptography-2.9.1-cp35-abi3-macosx_10_9_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    02现浇顶板内管路敷设工程.doc

    02现浇顶板内管路敷设工程

    HTML+Jquery的打地鼠小游戏源代码

    HTML+Jquery的打地鼠小游戏源代码

Global site tag (gtag.js) - Google Analytics