Flex+Java 导出PDF文件(大小不定)时进度条应用
2010-07-28 10:52
453 查看
1.当点击“导出到PDF”按钮时,会弹出一个下载对话框,并显示下载进度条。如下图
2.选择好保存路径和文件名后,点击保存。就开始下载。下载完成。进度条显示如下图
3.点击确定按钮。则进度条就会消失。
4.如果在弹出下载对话框时,你取消了下载。则进度条也跟随消失。
不过,整个应用有两个问题未解决。还请高手解决。
1.下载过程中,进度条没有发生动态变化。
2.第一次下载成功后,再次重新点击时,进度条背景颜色未能成功初始化。我用了this.progressBar.setStyle("trackColors","#0000FF");这句代码。但还是没有效果。从之前一系列组件的应用来看,感觉flex3对CSS支持不理想。
好了。奉献代码如下:
AS代码:
private var downloadURLRequest:URLRequest;
private var file:FileReference;
private function exportToPDF():void
{
var url:String = "/HouseRentMS/download?queryDate="+queryDate;
downloadURLRequest = new URLRequest(url);
file = new FileReference();
configureListeners(file);
var fileName:String ="房租明细("+this.queryDate+").pdf";
this.progressBar.visible = true;
file.download(downloadURLRequest,fileName);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS,progressHandler);
dispatcher.addEventListener(Event.CANCEL,cancelHandler);
}
private function progressHandler(event:ProgressEvent):void {
var fileUploadPercent:uint= event.bytesLoaded/event.bytesTotal*100;
progressBar.setProgress(fileUploadPercent, 100);
progressBar.label = "已完成" + fileUploadPercent + "%";
}
private function cancelHandler(event:Event):void
{
this.progressBar.visible = false;
}
private var btn:Class;
private function completeHandler(event:Event):void
{
Alert.okLabel="确定";
Alert.show("下载完成", "提示",
Alert.OK, this,closeHandlerEvent,btn,Alert.OK);
}
private function closeHandlerEvent(event:CloseEvent):void{
this.progressBar.label = "当前进度: 0%";
this.progressBar.visible = false;
//下面这句代码是初始化进度条背景颜色,但没有效果
//this.progressBar.setStyle("trackColors","#0000FF");
}
private function ioErrorHandler(event:IOErrorEvent):void
{
Alert.show(event.toString(),"提示");
}
MXML代码:
<mx:ProgressBar width="400" minimum="0" mode="manual"
maximum="100" visible="false" labelPlacement="center"
fontSize="24" barColor="haloBlue" trackColors="[white, haloSilver]"
trackHeight="64" id="progressBar" label="当前进度: 0%"
fontWeight="normal" y="18" height="30" x="268"/>
2.选择好保存路径和文件名后,点击保存。就开始下载。下载完成。进度条显示如下图
3.点击确定按钮。则进度条就会消失。
4.如果在弹出下载对话框时,你取消了下载。则进度条也跟随消失。
不过,整个应用有两个问题未解决。还请高手解决。
1.下载过程中,进度条没有发生动态变化。
2.第一次下载成功后,再次重新点击时,进度条背景颜色未能成功初始化。我用了this.progressBar.setStyle("trackColors","#0000FF");这句代码。但还是没有效果。从之前一系列组件的应用来看,感觉flex3对CSS支持不理想。
好了。奉献代码如下:
AS代码:
private var downloadURLRequest:URLRequest;
private var file:FileReference;
private function exportToPDF():void
{
var url:String = "/HouseRentMS/download?queryDate="+queryDate;
downloadURLRequest = new URLRequest(url);
file = new FileReference();
configureListeners(file);
var fileName:String ="房租明细("+this.queryDate+").pdf";
this.progressBar.visible = true;
file.download(downloadURLRequest,fileName);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS,progressHandler);
dispatcher.addEventListener(Event.CANCEL,cancelHandler);
}
private function progressHandler(event:ProgressEvent):void {
var fileUploadPercent:uint= event.bytesLoaded/event.bytesTotal*100;
progressBar.setProgress(fileUploadPercent, 100);
progressBar.label = "已完成" + fileUploadPercent + "%";
}
private function cancelHandler(event:Event):void
{
this.progressBar.visible = false;
}
private var btn:Class;
private function completeHandler(event:Event):void
{
Alert.okLabel="确定";
Alert.show("下载完成", "提示",
Alert.OK, this,closeHandlerEvent,btn,Alert.OK);
}
private function closeHandlerEvent(event:CloseEvent):void{
this.progressBar.label = "当前进度: 0%";
this.progressBar.visible = false;
//下面这句代码是初始化进度条背景颜色,但没有效果
//this.progressBar.setStyle("trackColors","#0000FF");
}
private function ioErrorHandler(event:IOErrorEvent):void
{
Alert.show(event.toString(),"提示");
}
MXML代码:
<mx:ProgressBar width="400" minimum="0" mode="manual"
maximum="100" visible="false" labelPlacement="center"
fontSize="24" barColor="haloBlue" trackColors="[white, haloSilver]"
trackHeight="64" id="progressBar" label="当前进度: 0%"
fontWeight="normal" y="18" height="30" x="268"/>
相关文章推荐
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
- Flex +java 多文件上传带进度条
- java-web 导出pdf文件并增加水印和照片
- Java程序员从笨鸟到菜鸟之(一百零六)java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
- java根据模板生成pdf文件并导出(转)
- Java 上传文件 Socket类应用 多线程上传 有注释哈,上传完请看看文件大小是否正常
- Java导出pdf文件数据
- Java程序员从笨鸟到菜鸟之(一百零六)java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- java导出pdf文件工具类
- Java程序员从笨鸟到菜鸟之(一百零六)java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- java导出pdf文件(插入图片及信息)
- JAVA 导出PDF文件
- java PDF文件导出
- java操作office和pdf文件页面列表导出cvs,excel、pdf报表.
- java导出PDF文件
- java 导出pdf文件
- java 使用itext导出PDF文件,图片文字左右布局
- JAVA按模版导出PDF文件,含条码,二维码,表格
- java导出pdf文件