博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fusionchart实现ZoomLine 源码 破解版 能够导出
阅读量:6950 次
发布时间:2019-06-27

本文共 11172 字,大约阅读时间需要 37 分钟。

近期画油量曲线须要用到ZoomLine官网看了好几天。如今整理出来供大家參考使用

zoomline.html源码

FusionCharts Free Documentation
FusionCharts.
zoomLine.xml源码

以上基本实现了图表的显示工作,假设须要导出还须要下面代码

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配置

> <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>

转载地址:http://gvkil.baihongyu.com/

你可能感兴趣的文章
MYSQL 连接数据库命令收藏
查看>>
C#基础篇六飞行棋
查看>>
汇编语言(王爽)第一章基础知识
查看>>
在创业型软件公司的收获
查看>>
Build SSH for Development on Windows Subsystem for Linux
查看>>
学习:数学----容斥原理
查看>>
WebSite And WebApplication
查看>>
Georgia Tech Online Master of Science in Computer Science 项目经验分享
查看>>
字王珐琅体系列,初稿ok
查看>>
浏览网上资源,了解编译原理就是什么?学习编译原理有什么好处?不学有什么损失?如何学习编译原理?...
查看>>
LeetCode 226. Invert Binary Tree
查看>>
空虚、寂寞、无聊
查看>>
基础学习笔记之opencv(1):opencv中facedetect例子浅析
查看>>
JS中属性/方法调用
查看>>
iOS 7 需要再和 Android 比什么
查看>>
8-Images
查看>>
Python字节码与解释器学习
查看>>
面试题
查看>>
PYTHON-函数对象,嵌套,名称空间与作用域,闭包函数
查看>>
使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(一)
查看>>