Mercurial > dive4elements > gnv-client
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, |