comparison gnv-artifacts/src/main/java/de/intevation/gnv/exports/ChartExportHelper.java @ 321:a4376fd23f99

Implemented svg export of charts. gnv-artifacts/trunk@383 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 30 Nov 2009 14:18:37 +0000
parents 18302372703f
children a88e15972c72
comparison
equal deleted inserted replaced
320:18302372703f 321:a4376fd23f99
11 import java.awt.Transparency; 11 import java.awt.Transparency;
12 import java.awt.Graphics2D; 12 import java.awt.Graphics2D;
13 import java.awt.geom.Rectangle2D; 13 import java.awt.geom.Rectangle2D;
14 import java.awt.geom.Rectangle2D.Double; 14 import java.awt.geom.Rectangle2D.Double;
15 import java.io.OutputStream; 15 import java.io.OutputStream;
16 import java.io.OutputStreamWriter;
16 import java.io.IOException; 17 import java.io.IOException;
18 import java.io.UnsupportedEncodingException;
17 import javax.imageio.ImageIO; 19 import javax.imageio.ImageIO;
18 20
21 import org.apache.batik.dom.svg.SVGDOMImplementation;
22 import org.apache.batik.svggen.SVGGraphics2D;
23 import org.apache.batik.svggen.SVGGraphics2DIOException;
19 import org.apache.log4j.Logger; 24 import org.apache.log4j.Logger;
20 25
21 import org.jfree.chart.JFreeChart; 26 import org.jfree.chart.JFreeChart;
22 27
23 28
25 * @author Ingo Weinzierl <ingo.weinzierl@intevation.de> 30 * @author Ingo Weinzierl <ingo.weinzierl@intevation.de>
26 */ 31 */
27 public class ChartExportHelper { 32 public class ChartExportHelper {
28 33
29 private static final String DEFAULT_PAGE_SIZE = "A4"; 34 private static final String DEFAULT_PAGE_SIZE = "A4";
35 private static final String DEFAULT_ENCODING = "UTF-8";
30 36
31 private static Logger log = Logger.getLogger(ChartExportHelper.class); 37 private static Logger log = Logger.getLogger(ChartExportHelper.class);
32 38
33 public static void exportImage( 39 public static void exportImage(
34 OutputStream out, 40 OutputStream out,
49 out 55 out
50 ); 56 );
51 } 57 }
52 58
53 59
54 public static void exportSVG() { 60 public static void exportSVG(
55 log.info("export chart as svg (not implemented yet)"); 61 OutputStream out,
62 JFreeChart chart,
63 String encoding,
64 int width,
65 int height
66 ) {
67 log.info("export chart as svg");
68
69 if (encoding == null)
70 encoding = DEFAULT_ENCODING;
71
72 SVGDOMImplementation svgDom = new SVGDOMImplementation();
73 org.w3c.dom.Document document = svgDom.createDocument(null,"svg",null);
74 SVGGraphics2D graphics = new SVGGraphics2D(document);
75
76 chart.draw(graphics, new Rectangle2D.Double(0.0D, 0.0D,width,height));
77
78 try {
79 graphics.stream(new OutputStreamWriter(out, encoding));
80 }
81 catch (SVGGraphics2DIOException svge) {
82 log.error("Error while writing svg export to output stream.", svge);
83 }
84 catch (UnsupportedEncodingException uee) {
85 log.error("Unsupported encoding: " + encoding, uee);
86 }
56 } 87 }
57 88
58 89
59 public static void exportPDF( 90 public static void exportPDF(
60 OutputStream out, 91 OutputStream out,

http://dive4elements.wald.intevation.org