- 浏览: 1466815 次
- 性别:
- 来自: 青岛人在北京
文章分类
最新评论
-
yhxf_ie:
azheng270 写道 永远是0知道答案了, inser ...
使用MySQL的LAST_INSERT_ID -
yhxf_ie:
insert了还是0... 可能还要设置些什么?
使用MySQL的LAST_INSERT_ID -
一如年少:
123123
Flex使用ribbit.com的服务给手机发送短信SMS -
pointdew:
poincare 写道您好,请教一个问题,如果我的 swf 文 ...
Flex:使用FlexPaper显示PDF文档 -
pointdew:
swf远程加载问题 : flexpaper无法加载http方式 ...
Flex:使用FlexPaper显示PDF文档
前几天看了lwz7512的 《基于servlet导出Flex/Flash界面为图形文件的简单方法》,今天有时间就实践了一下。
1.使用BitmapData将flex的某个UIComponent转换为ByteArray
2.使用JPGEncoder转换ByteArray。JPGEncoder是corelib(http://code.google.com/p/as3corelib/) 的组件。我直接导入corelib.swc却报错,幸好有源代码可以直接使用。
3.使用URLRequest发送ByteArray到服务端的java servlet
4.在servlet中使用ImageIO保存图片或者输出到response
下面是具体代码
这里使用了一个Bar Chart图表进行实验,URLRequest的myImage是我的java servlet
printImage将图形输出到response,将会在web浏览器中看到图片。或者你可以使用saveImage保存图片到服务器。
1.使用BitmapData将flex的某个UIComponent转换为ByteArray
2.使用JPGEncoder转换ByteArray。JPGEncoder是corelib(http://code.google.com/p/as3corelib/) 的组件。我直接导入corelib.swc却报错,幸好有源代码可以直接使用。
3.使用URLRequest发送ByteArray到服务端的java servlet
4.在servlet中使用ImageIO保存图片或者输出到response
下面是具体代码
actionscript 代码
- <mx:Application
- xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute">
- <mx:Script>
- [CDATA[
- import mx.controls.Alert;
- import mx.core.UIComponent;
- import mx.collections.ArrayCollection;
- import com.adobe.images.JPGEncoder;
- [Bindable]
- public var expenses:ArrayCollection = new ArrayCollection(
- [
- {Month:"Jan", Profit:2000, Expenses:1500},
- {Month:"Feb", Profit:1000, Expenses:200},
- {Month:"Mar", Profit:1500, Expenses:500}
- ]
- );
- public function getJPGByteArray(target:UIComponent):ByteArray {
- var bitmapData : BitmapData = new BitmapData(target.width, target.height);
- bitmapData.draw(target);
- var jpg : JPGEncoder = new JPGEncoder();
- var jpgByteArray : ByteArray = jpg.encode(bitmapData);
- return jpgByteArray;
- }
- public function sendImageByte(target:UIComponent):void {
- var request:URLRequest = new URLRequest("myImage");
- request.contentType = 'applicatoin/octet-stream';
- request.data = getJPGByteArray(target);
- request.method = URLRequestMethod.POST;
- navigateToURL(request, "_blank");
- }
- ]]
- </mx:Script>
- <mx:Panel id="chartPanel" title="Bar Chart" width="300" height="400">
- <mx:BarChart id="myChart" dataProvider="{expenses}" width="100%" height="100%">
- <mx:verticalAxis>
- <mx:CategoryAxis
- dataProvider="{expenses}"
- categoryField="Month"
- />
- </mx:verticalAxis>
- <mx:series>
- <mx:BarSeries
- yField="Month"
- xField="Profit"
- displayName="Profit"
- />
- <mx:BarSeries
- yField="Month"
- xField="Expenses"
- displayName="Expenses"
- />
- </mx:series>
- </mx:BarChart>
- <mx:Legend dataProvider="{myChart}"/>
- <mx:Button label="Get Chart Image" click="sendImageByte(myChart)"/>
- <mx:Button label="Get Panel Image" click="sendImageByte(chartPanel)"/>
- </mx:Panel>
- </mx:Application>
这里使用了一个Bar Chart图表进行实验,URLRequest的myImage是我的java servlet
java 代码
- import java.awt.image.BufferedImage;
- import javax.imageio.ImageIO;
- import org.apache.commons.io.IOUtils;
- public class ImageServlet extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
- doService(arg0, arg1);
- }
- @Override
- protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
- doService(arg0, arg1);
- }
- private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {
- //saveImage(request, response);
- printImage(request, response);
- }
- private void saveImage(HttpServletRequest request, HttpServletResponse response) throws IOException {
- String fileName = "D://" + System.currentTimeMillis() + ".jpg";
- BufferedImage bufferedImage = ImageIO.read(request.getInputStream());
- if (bufferedImage != null) {
- ImageIO.write(bufferedImage, "jpeg", new File(fileName));
- }
- }
- private void printImage(HttpServletRequest request, HttpServletResponse response) throws IOException {
- response.setContentType("image/jpeg");
- response.setHeader("Content-Length:", String.valueOf(request.getInputStream().available()));
- ServletOutputStream sos = response.getOutputStream();
- IOUtils.copy(request.getInputStream(), sos);
- sos.flush();
- sos.close();
- }
- }
printImage将图形输出到response,将会在web浏览器中看到图片。或者你可以使用saveImage保存图片到服务器。
发表评论
-
Flex4中文视频教程 - RIAMeeting
2010-04-23 10:48 6863RIAMeeting翻译的Flex4中文视频教程, 地址 ht ... -
Flash Flex 开源游戏引擎
2010-03-28 21:18 7240今天去了 9RIA.com 的北京天地会活动, 会上介绍了一些 ... -
几十个 ActionScript 3.0 APIs for Flex, Flash, AIR
2009-12-22 11:54 4203开发过程中使用API可以节省时间,这里有几十个API,它们可以 ... -
Flex:使用FlexPaper显示PDF文档
2009-12-15 17:03 35489FlexPaper是一个开源的轻量级文档显示组件,被设计用来与 ... -
Flex白板画图例子
2009-06-21 18:56 8152这个程序是从公司2007年做的一个项目中抽取出来的部分代码完成 ... -
Flex使用ribbit.com的服务给手机发送短信SMS
2009-06-13 15:10 3132http://www.ribbit.com/ 可以将语音通 ... -
Flex鼠标移到Label上显示手型useHandCursor
2009-05-08 11:28 5679要想鼠标在Label上显示为手型,需要设置3个属性 & ... -
Flex3与EJB3的WebService通讯
2009-04-18 14:20 3754项目中使用了Flex3 + EJB3 + WebService ... -
CodeBehind and DI 分离MXML中的ActionScript
2009-04-09 20:27 2749你是否开始厌倦在 mxml 中写 <mx:Script& ... -
De MonsterDebugger开源的Flex运行时调试器
2009-04-09 15:53 4092De MonsterDebugger http://www. ... -
Flex组件中PopUpManager在全局坐标中心弹出窗口
2009-04-02 19:52 5056在Flex的某个组件中使用 var somePopupWi ... -
在JBoss4.2中放置crossdomain.xml解决flex3跨域访问WebService问题
2009-03-31 20:54 5768Flex访问部署在JBoss4.2上的WebService时报 ... -
使用Flex3的Import Web Service功能
2009-03-28 21:36 2530在FlexBuilder的菜单上选 Data -> I ... -
使用KitchenSync和CASALib延迟(delay)执行Flex的function
2009-02-25 18:26 3432要延迟(delay)执行Flex的function,或按顺序同 ... -
Flex中解决Error #2044 securityError
2009-02-25 16:54 6666在FlexBuilder中运行app没有问题,复制项目的 bi ... -
Flex中加载Flash CS3制作的swf文件
2009-02-14 20:37 6330Flex加载Flash CS3制作的swf文件, 看Demo ... -
Flex视频教学 (RIAMeeting翻译Flex in a Week)
2008-12-01 00:03 4362此系列Flex视频教学是基于Adobe官方的Flex in a ... -
Flex中文API (Adobe官方)
2008-08-19 10:03 21541Adobe推出的中文API http://livedocs ... -
RIAMeeting - Flash Media Server 3
2008-07-26 22:08 3275这次是RIAMeeting的第七次 ... -
Mate Flex Framework
2008-07-22 11:29 3173Mate 是一个基于标签(tag-based)的事件驱动(ev ...
相关推荐
本主题将深入探讨如何在Flex中实现组件DataGrid的数据导出功能,使其能够生成Excel文件供用户下载和处理。 DataGrid是Flex中常用的一个组件,它用于展示结构化数据,通常用于表格形式的展示。在Flex中,我们可以...
要实现“flex图表导出图片”的功能,我们需要解决两个主要问题:一是如何将图表渲染为图像,二是如何将图像保存或导出。这个问题通常涉及到两个技术:Canvas渲染和图片编码。 1. **Canvas渲染**:在Flex中,我们...
在本场景中,我们将讨论如何在Flex中捕获组件的快照,将其转换为ByteArray,并通过JavaServlet将其导出为图片。 首先,让我们深入了解Flex中的组件快照。在Flex中,我们可以使用BitmapData类来捕获组件的视觉表示,...
要将组件保存为图片,首先需要将其渲染为位图。Flex提供了`flash.display.BitmapData`类,可以通过`draw()`方法将任何可视对象(包括Flex组件)绘制到位图数据中。 2. **捕获组件的视觉表示** 要获取组件的视觉...
在IT行业中,Excel导出公共组件是一个非常实用的功能,它允许开发者通过编程方式将查询到的数据高效地导出为Excel格式的文件。这样的组件通常被广泛应用于数据分析、报表生成、数据备份等领域,使得用户可以方便地对...
将CAD图纸导出为jpg图片可以解决这些问题,因为jpg格式是最常见的图片格式,几乎所有的设备和平台都支持该格式。 二、CAD图纸导出jpg图片的步骤 1. 打开准备好导出的图纸 首先,我们需要打开准备好导出的CAD图纸...
在Java后台导出Flex DataGrid为Excel是一项常见的需求,特别是在数据可视化和数据分析场景中。Flex DataGrid是一种用于展示大量结构化数据的组件,而Excel则是处理和存储表格数据的流行工具。下面我们将深入探讨如何...
Flex PDF导出分页是一种在Flex应用程序中生成PDF文件并实现多页显示的技术。Flex作为一个基于ActionScript和Flash Player的开发框架,常用于构建富互联网应用程序。然而,原生的Flex SDK并不直接支持PDF导出,因此...
AdvancedDataGrid导出复杂表头excel
作为ArcGIS工作者,日常编辑大量的MXD工程文件,尤其一些复杂的工程文件在导出地图时用时较长,如果MXD工程较多时需要一个一个来打开工作空间并导出。使用“批量导出工具”可以将文件夹内的所有MXD工程一次性自动...
在Flex Air中,有时我们需要将数据导出为Excel格式,以便用户可以进行离线分析或进一步处理。然而,需要注意的是,Flex Air原生并不直接支持导出包含中文字符的Excel文件,这可能是由于早期版本的Excel文件格式处理...
Flex组件快速制作工具是一款高效便捷的应用程序,专为开发者和美工设计,旨在简化Flex项目的组件创建过程。通过将SWF文件直接拖放到提供的EXE文件上,用户能够轻松地生成自定义的Flex组件,极大地提高了开发效率。这...
arcgis数据驱动中利用arcpy批量导出JPG图片。分享数据为代码,代码中的路径需自己换。
在这个过程中,设计者可以创建组件皮肤,为Flex应用增添独特的视觉风格。 设计Flex Button组件皮肤的步骤如下: 1. **启动Catalyst CS5.5**:打开软件并创建一个新的Catalyst工程。在CommonLIBRARY面板中,找到并...
5. **MXML组件**:`CSV.mxml`文件很可能是一个Flex MXML组件,它包含了实现CSV导出的逻辑。MXML是Flex中用于创建用户界面的声明式语言,它可以结合ActionScript代码来处理事件和业务逻辑。 6. **导出过程**:在Flex...
这些库提供了API,允许开发者将Flex组件转换为不同格式。例如,PDFExporter可以将Flex界面转换为高质量的PDF文档。 4. **ActionScript编程**:虽然大部分工作可以在MXML中完成,但复杂的导出逻辑可能需要在...
本组件可以将表格中的内容导出为pdf、doc、xls、jpg。 在web开发中经常需要将jsp或html页面中表格数据导出为pdf、doc、xls等格式。然而在实现这一功能用到了一些开源的组件,每实现这一功能时都需要编写大量重复性...
在`extjs_excel.js`中,你可能找到一个配置了事件监听器的按钮组件,该监听器会发送请求到服务器,请求执行导出操作。 接下来,PHP部分是后端处理逻辑的核心。通常,你会看到一个PHP脚本接收前端发来的请求,然后...