fusionchart实现ZoomLine 源码 破解版 能够导出
近期画油量曲线须要用到ZoomLine官网看了好几天。如今整理出来供大家參考使用
zoomline.html源码
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>FusionCharts Free Documentation</title>
- <!-- 脚本区域 start -->
- <script type="text/javascript" src="js/FusionCharts.js"></script>
- <script type="text/javascript" src="js/FusionChartsExportComponent.js"></script>
- <!-- 脚本区域 end -->
- <script type="text/javascript">
- //导出图片调用的方法
- function startExport(){
- var chart = getChartFromId("myFusionExport"); //生成的FusionCharts图表本身的标识
- if (chart.hasRendered()){
- chart.exportChart();
- }else{
- alert("Please wait for the chart to finish rendering, before you can invoke exporting");
- }
- }
- </script>
- </head>
- <table width="98%" border="0" cellspacing="0" cellpadding="3" align="center">
- <tr>
- <td valign="top" class="text" align="center">
- <div id="myFusion" align="center">
- FusionCharts.
- </div>
- <script type="text/javascript">
- var chart = new FusionCharts("charts/ZoomLine.swf", "myFusionExport", "790", "450");
- chart.setDataURL("data/zoomLine.xml");
- chart.render("myFusion");
- </script>
- </td>
- </tr>
- <input type='button' value='导出FusionCharts图片' onClick="startExport();" />
- </table>
- </html>
zoomLine.xml源码
- <chart
- palette="1"
- showLabels="0"
- showBorder="1"
- chartLeftMargin="10"
- chartRightMargin="5"
- chartTopMargin="15"
- chartBottomMargin="15"
- exportEnabled="1"
- exportAtClient="0"
- exportHandler="FCExporter"
- showExportDialog="1"
- animation="0"
- exportFileName="fusioncharts"
- exportDialogMessage="正在导出。请稍候..."
- rotateLabels="0"
- DIVLINES="Blur"
- DATATOOLTIP="0x004E98"
- showValues="0"
- allowPinMode="1"
- showVDivLines="1"
- drawToolbarButtons="1"
- lineThickness="1"
- oolBarBtnHPadding="0"
- mouseCursorColor="#FF0000"
- toolTipBarColor="FF0000"
- pinPaneBgColor="#FFFFFF"
- lineColor="#0000FF"
- divLineColor="#FF0000"
- background="#0000FF"
- bgColor="#FFFFFF"
- scrollColor="#FFFFFF"
- canvasBorderColor="#FF0000"
- toolbarButtonColor="FFFFFF"
- btnZoomOutTitle=" "
- zoomOutMenuItemLabel=" "
- btnResetChartTitle="缩小"
- btnSwitchtoZoomModeTitle="切换Pin模式"
- btnSwitchToPinModeTitle="切换Zoom模式"
- showToolBarButtonTooltext="0"
- toolbarButtonFontColor="000000"
- >
- <categories>
- <category name="02-03 07:00:05" />
- <category name="02-03 06:59:35" />
- <category name="02-03 06:59:05" />
- <category name="02-03 06:58:35" />
- <category name="02-03 06:58:04" />
- <category name="02-03 06:57:34" />
- <category name="02-03 06:57:04" />
- <category name="02-03 06:56:34" />
- <category name="02-03 06:56:04" />
- <category name="02-03 06:55:33" />
- </categories>
- <dataset>
- <set value="300" />
- <set value="349" />
- <set value="627" />
- <set value="445" />
- <set value="623" />
- <set value="575" />
- <set value="567" />
- <set value="576" />
- <set value="745" />
- <set value="409" />
- </dataset>
- </chart>
以上基本实现了图表的显示工作,假设须要导出还须要下面代码
FCExporterFormat.java源码
- package com.fusioncharts.exporter.resources;
- import javax.servlet.http.HttpServletResponse;
- import com.fusioncharts.exporter.beans.ExportBean;
- public abstract class FCExporterFormat {
- abstract public Object exportProcessor(ExportBean exportBean);
- abstract public String exportOutput(Object exportObj,
- HttpServletResponse response);
- }
FCExporterIMG.java源码
- package com.fusioncharts.exporter.resources;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import javax.servlet.http.HttpServletResponse;
- import com.fusioncharts.exporter.ErrorHandler;
- import com.fusioncharts.exporter.FusionChartsExportHelper;
- import com.fusioncharts.exporter.beans.ChartMetadata;
- import com.fusioncharts.exporter.beans.ExportBean;
- import com.fusioncharts.exporter.encoders.BasicEncoder;
- import com.fusioncharts.exporter.encoders.JPEGEncoder;
- import com.fusioncharts.exporter.generators.ImageGenerator;
- public class FCExporterIMG extends FCExporterFormat {
- private ExportBean exportBean = null;
- public String exportOutput(Object exportObj, HttpServletResponse response) {
- String action = (String)exportBean.getExportParameterValue("exportaction");
- String exportFormat = (String)exportBean.getExportParameterValue("exportformat");
- String exportTargetWindow = (String)exportBean.getExportParameterValue("exporttargetwindow");
- String fileNameWithoutExt = (String)exportBean.getExportParameterValue("exportfilename");
- String extension = FusionChartsExportHelper.getExtensionFor(exportFormat.toLowerCase());;
- String fileName = fileNameWithoutExt+"."+ extension;
- StringBuffer err_warn_Codes = new StringBuffer();
- BufferedImage chartImage = (BufferedImage)exportObj;
- boolean isHTML = false;
- if(action.equals("download"))
- isHTML=true;
- String noticeMessage = "";
- String meta_values= exportBean.getMetadataAsQueryString(null,false,isHTML);
- if(action.equals("download")){
- try {
- response.setContentType(FusionChartsExportHelper.getMimeTypeFor(exportFormat.toLowerCase()));
- OutputStream os = response.getOutputStream();
- if(exportTargetWindow.equalsIgnoreCase("_self")){
- response.addHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");
- //response.addHeader("Content-length",""+ios.length());
- } else {
- response.addHeader("Content-Disposition", "inline; filename=\""+fileName+"\"");
- }
- if( exportFormat.toLowerCase().equalsIgnoreCase("jpg") || exportFormat.toLowerCase().equalsIgnoreCase("jpeg")){
- JPEGEncoder jpegEncoder = new JPEGEncoder();
- try {
- jpegEncoder.encode(chartImage,os);
- os.flush();
- }catch(Throwable e){
- //Unable to encode the buffered image
- System.out.println("Unable to (JPEG) encode the buffered image");
- err_warn_Codes.append("E516,");
- //os.flush();
- // Note forward will not work in this case, as the output stream has already been opened
- // Hence we have to output the error directly.
- meta_values =exportBean.getMetadataAsQueryString(null,true,isHTML);
- // Reset the response to set new content type and use out instead of outputstream
- response.reset();
- response.setContentType("text/html");
- PrintWriter out = response.getWriter();
- out.print(meta_values+noticeMessage+ErrorHandler.buildResponse(err_warn_Codes.toString(),isHTML));
- return null;
- }
- chartImage=null;
- } else {
- BasicEncoder basicEncoder = new BasicEncoder();
- try {
- basicEncoder.encode(chartImage,os,1F,exportFormat.toLowerCase());
- os.flush();
- }catch(Throwable e){
- System.out.println("Unable to encode the buffered image");
- err_warn_Codes.append("E516,");
- //os.flush();
- // Note forward will not work in this case, as the output stream has already been opened
- // Hence we have to output the error directly.
- meta_values =exportBean.getMetadataAsQueryString(null,true,isHTML);
- // Reset the response to set new content type and use out instead of outputstream
- response.reset();
- response.setContentType("text/html");
- PrintWriter out = response.getWriter();
- out.print(meta_values+noticeMessage+ErrorHandler.buildResponse(err_warn_Codes.toString(),isHTML));
- return null;
- }
- chartImage=null;
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(err_warn_Codes.indexOf("E") != -1) {
- meta_values =exportBean.getMetadataAsQueryString(null,true,isHTML);
- PrintWriter out;
- try {
- out = response.getWriter();
- out.print(meta_values+noticeMessage+"&statusCode=1&statusMessage=successful");
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- public Object exportProcessor(ExportBean pExportBean) {
- exportBean = pExportBean;
- String stream = (String)exportBean.getStream();
- ChartMetadata metadata= exportBean.getMetadata();
- BufferedImage chartImage = ImageGenerator.getChartImage(stream,metadata);
- return chartImage;
- }
- }
FCExporter.java源码
- package com.fusioncharts.exporter.servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.fusioncharts.exporter.ErrorHandler;
- import com.fusioncharts.exporter.FusionChartsExportHelper;
- import com.fusioncharts.exporter.beans.ExportBean;
- import com.fusioncharts.exporter.resources.FCExporterFormat;
- public class FCExporter extends HttpServlet {
- public FCExporter() {
- super();
- }
- public void init(ServletConfig config) throws ServletException {
- super.init(config);
- }
- public void destroy() {
- super.destroy();
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- doPost(request,response);
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- ServletContext sc = getServletContext();
- String WEB_ROOT_PATH = sc.getRealPath("/");
- ExportBean localExportBean = FusionChartsExportHelper.parseExportRequestStream(request);
- String exportFormat = (String)localExportBean.getExportParameterValue("exportformat");
- String exportTargetWindow = (String)localExportBean.getExportParameterValue("exporttargetwindow");
- StringBuffer err_warn_Codes = new StringBuffer();
- if (localExportBean.getMetadata().getWidth() == -1 ||
- localExportBean.getMetadata().getHeight() == -1 ||
- localExportBean.getMetadata().getWidth() == 0 ||
- localExportBean.getMetadata().getHeight() == 0 ) {
- //If Width/Height parameter is not sent, the ChartMetadata will have width/height as -1
- //Raise Error E101 - Width/Height not found
- err_warn_Codes.append("E101,");
- }
- if (localExportBean.getMetadata().getBgColor() == null) {
- //Background color not available
- err_warn_Codes.append("W513,");
- }
- if (localExportBean.getStream() == null ) {
- //If image data not available
- //Raise Error E100
- err_warn_Codes.append("E100,");
- }
- String exportAction = (String)localExportBean.getExportParameterValue("exportaction");
- boolean isHTML = false;
- if(exportAction.equals("download"))
- isHTML=true;
- if(!exportAction.equals("download")) {
- String fileNameWithoutExt = (String)localExportBean.getExportParameterValue("exportfilename");
- String extension = FusionChartsExportHelper.getExtensionFor(exportFormat.toLowerCase());;
- String fileName = fileNameWithoutExt+"."+ extension;
- err_warn_Codes.append(ErrorHandler.checkServerSaveStatus(WEB_ROOT_PATH,fileName));
- }
- String pathToWebAppRoot = getServletContext().getRealPath("/");
- localExportBean.addExportParameter("webapproot", pathToWebAppRoot);
- String meta_values= localExportBean.getMetadataAsQueryString(null,true,isHTML);
- if(err_warn_Codes.indexOf("E") != -1) {
- // There are errors - forward to error page
- writeError(response,""+isHTML,err_warn_Codes.toString(),meta_values,exportTargetWindow);
- } else {
- // get the exporter for this format
- //String path = FusionChartsExportHelper.getExporterFilePath(exportFormat).replace(" ","");
- // gives with .jsp extension, let us remove the extension - this is a work-around until next release, where Servlets will also be supported
- //int indexOfDot = path.lastIndexOf(".");
- //String exporterClassName = path.substring(0, indexOfDot);
- try {
- //Class exporterClass = Class.forName(exporterClassName);
- Class exporterClass = Class.forName("com.fusioncharts.exporter.resources.FCExporterIMG");
- FCExporterFormat fcExporter = (FCExporterFormat)exporterClass.newInstance();
- Object exportObject = fcExporter.exportProcessor(localExportBean);
- String status= fcExporter.exportOutput(exportObject, response);
- } catch (ClassNotFoundException e) {
- err_warn_Codes.append("E404");
- writeError(response,""+isHTML,err_warn_Codes.toString(),meta_values,exportTargetWindow);
- } catch (InstantiationException e) {
- err_warn_Codes.append("E404");
- writeError(response,""+isHTML,err_warn_Codes.toString(),meta_values,exportTargetWindow);
- } catch (IllegalAccessException e) {
- err_warn_Codes.append("E404");
- writeError(response,""+isHTML,err_warn_Codes.toString(),meta_values,exportTargetWindow);
- }
- }
- }
- private void writeError(HttpServletResponse response, String isHTML, String errorCodes, String otherMessages, String exportTargetWindow) {
- if(isHTML==null){
- isHTML = "true";
- }
- if(otherMessages==null){
- otherMessages="";
- }
- if(errorCodes==null){
- errorCodes="";
- }
- response.setContentType("text/html");
- if(exportTargetWindow.equalsIgnoreCase("_self")){
- response.addHeader("Content-Disposition", "attachment;");
- } else {
- response.addHeader("Content-Disposition", "inline;");
- }
- PrintWriter out;
- try {
- out = response.getWriter();
- out.print(ErrorHandler.buildResponse(errorCodes,new Boolean(isHTML).booleanValue())) ;
- out.print(otherMessages);
- } catch (IOException e) {
- }
- }
- }
web.xml配置
- <?xml version="1.0" encoding="UTF-8"?
- >
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <display-name>FCExporter</display-name>
- <servlet-name>FCExporter</servlet-name>
- <servlet-class>com.fusioncharts.exporter.servlet.FCExporter</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>FCExporter</servlet-name>
- <url-pattern>/FCExporter</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>zoomline.html</welcome-file>
- </welcome-file-list>
- </web-app>
fusionchart实现ZoomLine 源码 破解版 能够导出的更多相关文章
- CLion 2016.1.1 下载 附注册激活码 破解版方法
http://www.520xiazai.com/soft/CLion-2016.1.1.html CLion 2016.1.1 下载 附注册激活码 破解版方法 注册破解方法:在要求输入注册的界面选择 ...
- 查看安卓APK源码破解
原文:查看安卓APK源码破解 工具准备: <1>.android4me的AXMLPrinter2工具 <2>dex2jar <3>jd-gui 工具下载:http: ...
- 学生信息管理系统应用ios源码iPad版
学生信息管理系统应用iPad版,该应用源码比较完整的,而且也很详细,这也是一款学校用的学生和老师管理系统,里面涉及到了很多ipad常用的控件,操作和数据存储. <ignore_js_op> ...
- 高仿百度传课应用客户端源码iOS版
高仿百度传课iOS版,版本号:2.4.1.2 运行环境:xcode6.3 ios8.3 (再往上系统没有测试) 转载请注明出处,不可用于商业用途及不合法用途. 如果你觉得不错,欢迎 star 哦 ...
- (国内)完美下载Android源码Ubuntu版
今天写的文章莫名奇妙的没了,所以再重新写一篇. 首先,为了方便起见,我已经将系统更换成里Ubuntu,因为官方推荐使用这个Linux发行版.先来一张系统的截图: Ubuntu的版本是16.04(推荐用 ...
- 别踩白块儿游戏源码Android版
这个项目有带说明文档,大家可以看看源码附件的说明文档吧,“别踩白块儿”是目前非常火的一款游戏,游戏非常简单刺激.关于具体怎么火法怎么玩我就不多说了,相信看到本文的朋友们都非常地清楚. 什么游戏火,我们 ...
- 旅游风景展示应用源码iPad版
一款iPad旅游风景展示应用源码,一款iPad旅游景区展示应用.效果很炫,左右可以以书本的效果进行翻页,双击左边显示该风景区的信息,双击右边可以显示该风景区的地理位置.<ignore_js_op ...
- newsstand杂志阅读应用源码ipad版
一款newsstand iPad杂志阅读应用源码(newsstand在线下载/动态显示等)可以支持在线下载/动态显示等 ,也是一款newsstand iPad杂志阅读应用源码.运行之后,会在iPad ...
- 分享一个难得的YiBo微博客户端应用源码Android版
今天给大家分享一款,YiBo微博客户端应用源码,这是一款专为Android用户打造的聚合型微博客户端,完美支持新浪微博.腾讯微博.搜狐微博.网易微博和饭否五个微博平台,界面清爽,使用简单轻巧,支持多账 ...
随机推荐
- 流行python服务器框架
流行python服务器框架 1.tonardo---- 多并发.轻量级应用, “非阻塞”的web 容器.类似tomcat.这个大家太熟悉了,就不多说了. 2.Twisted---- Twisted ...
- Java Thread 那些事
这篇文章被压在草稿箱许久,最近公司内部的技术社区有同学贴出了几篇分享 Java线程的文章,发觉有很多概念没有讲清楚,所以花点时间继续撰写,便有了这篇博文. 本文只聚焦 JVM 层面的线程模型,不考虑和 ...
- MFC类中获得其它类指针
当用VC++的Application Wizard生成除了CDialog Basiced以外的应用程序时,将自动产生视图类.文档类.主帧窗口类.应用程序类等等.一般来说,程序的核心数据及操作在文档类中 ...
- Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法
Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx" ...
- Beaker 1.6.4 : Python Package Index
Beaker 1.6.4 : Python Package Index Beaker 1.6.4 Download Beaker-1.6.4.tar.gz A Session and Caching ...
- android设置背景图片透明
设置Activiyt为透明可以在Activity中引用系统透明主题android:theme="@android:style/Theme.Translucent" 设置背景图片透明 ...
- jquery如何在加载完iframe的内容后才进行下一步操作
为iframe添加onload事件 ie使用attachEvent("onload",function(){}) firefox.chrome使用addEventListener( ...
- 优化Java堆大小5温馨提示
总结:Java没有足够的堆大小可能会导致性能非常大的影响,这无疑将给予必要的程序,并不能带来麻烦.本文总结了影响Java居前五位的能力不足,并整齐地叠优化? 笔者Pierre有一个10高级系统架构师有 ...
- 使用datapump 导出导入同义词(export and import synonym using datapump)
对于同义词的备份我们有多种方式来实现,如直接通过脚本生成同义词的创建脚本,或者使用dbms_metadata.get_ddl来提取同义词的定义脚本.然而在使用传统的exp或是datapump expd ...
- JS - 全屏滚动
下载地址:http://www.lanrentuku.com/js/quanping-1141.html