The build-in print function provided by Adobe Flex is actually pretty straightforward. For a single page print, it is good enough. Here is how it works:
Things You Need
mx.printing.FlexPrintJob
Steps You Do
1. Create a FlexPrintJob Instance
var flexPrintJob: FlexPrintJob = new FlexPrintJob();
2. Start FlexPrintJob
flexPrintJob.start();
3. Add Target Component to FlexPrintJob
printJob.addObject(targetComponent);
4. Print
printJob.send();Sample Code
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
initialize="init()">
<mx:Script>
<![CDATA[
import mx.printing.FlexPrintJob;
import mx.collections.ArrayCollection;
[Bindable]
public var dataSource:ArrayCollection = new ArrayCollection();
private var totalRecords:Number = 15;
private function init():void {
for (var i:int = 1; i<=totalRecords; i++) {
var dataObject:Object = new Object();
dataObject.Name = "Name #" + i;
dataObject.Phone = "Phone #" + i;
dataObject.Address = "Address #" + i;
dataSource.addItem(dataObject);
}
}
private function doPrint():void {
var printJob:FlexPrintJob = new FlexPrintJob();
printJob.printAsBitmap=false; //提高文字清晰度
if (printJob.start()) {
printJob.addObject(myData);
printJob.send();
}
}
]]>
</mx:Script>
<mx:Panel title="Flex Tutorial - Print"
width="500" height="500"
horizontalCenter="0" verticalCenter="0"
horizontalAlign="center" verticalAlign="middle">
<mx:DataGrid id="myData"
dataProvider="{dataSource}"
width="400" height="400" />
<mx:Button label="Print" click="doPrint()"/>
</mx:Panel>
</mx:Application>
Conclusion
Adobe Flex provides FlexPrintJob to handle the print request. It is very simple to use. However, the biggest challenge is printing multiple pages. In the above sample code, if you change the code,
From:
private var totalRecords:Number = 15;
To:
private var totalRecords:Number = 100;
It will generate 100 records in the DataGrid. Guess how many of them will be printed if you click the Print button? Depends on your page and printer setting, maybe just 17-20. You will even see a ugly vertical scoll bar. The problem here is, FlexPrintJob itself can not SCOLL those Scollable Components like DataGrid or TextArea.
To resolve this problem, Adobe provides a workaround in Flex framework. In the next tutorial, we will see Printing Multiple Pages Using PrintDataGrid.
分享到:
相关推荐
Flex 打印 例子 Flex 打印 例子 Flex 打印 例子
flex 打印源代码
关于Flex自带的打印及打印功能,代码较全,较容易理解。不错的资源!
Flex打印预览,本人找N久才找到希望能给朋友们帮上忙
flex 打印控件 应该说是相当完美了。 但只能够用于grid打印和打印预览
flex打印机制,使用flex内置打印容器类解决打印问题。
flex 打印预览
flex 打印小实例源码,已经测试过的,希望能对大家有所帮助。
有两个ArcGis实现的打印功能,以及使用的包,及查看例子的地址等.是自己做时的总结
FlexReport.zip,这个是Flex的打印程序
NULL 博文链接:https://goby2008.iteye.com/blog/836201
NULL 博文链接:https://shuaiqixiao4.iteye.com/blog/650162
FLEX内存释放优化原则,内存泄露解决方法,内存泄露情况
如果要使用分页效果,则必须使用标签"PrintAdvancedDataGrid"(Flex3中的标签)才能够实现分页效果,感兴趣的朋友可以参考下
第8章 Flex打印 265 8.1 Web打印方案 265 8.1.1 原生打印 265 8.1.2 宿主打印 265 8.1.3 外部打印 266 8.2 为什么使用Flex来打印 267 8.3 使用PrintJob打印 267 8.4 深入了解PrintJob 268 8.5 实战PrintJob...
本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。...第8章 Flex打印 第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder
本人从其他网站上下载的,333页全,看到CSDN上没有完整的版本,所以共享一下。...第8章 Flex打印 第9章 Flex企业应用性能优化 第10章 Flex企业应用开发的其他技术 附录 Flex Builder 中的项目如何迁移至Flash Builder
ArcGIS FlexViewer 中只提供了打印功能但没有打印预览功能,该代码包将为你提供真实的打印预览。
关于Flex中各种图形的例子 LineChart Columnchart Areachart Bubblechart Barchart 的例子 数据从后台的Java类获取 也可以从数据库获取