Help...
Can you explain
to me why this displays correctly on the screen, (ie a blue dot and
a red ball) but when I export it to a file, it just ends up being two blue
balls. How do I export a RadialGradientPaint to SVG?
I'm currently using
batik-1.5beta4b along with the jdk1.3.1_07 in a windows environment
(windows 2000 Pro).
Following is a sample
application containing the code that is not working...
please respond to me at [EMAIL PROTECTED]. Thank
you for your help
import
javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import org.apache.batik.ext.awt.RadialGradientPaint;
import java.awt.*;
import java.awt.geom.*;
import org.apache.batik.ext.awt.RadialGradientPaint;
//******* for the SVGWriter
import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.dom.GenericDOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.DOMImplementation;
public class TrivialApplication {
private MyFrame myFrame;
public static void main(String args[]) {
//******* Set Up Frame
//**********************************************
public static void main(String args[]) {
//******* Set Up Frame
//**********************************************
JFrame myFrame = new MyFrame();
myFrame.setLocation(new Point(250,250));
myFrame.setSize(new Dimension(100,100));
myFrame.setTitle("MTA");
myFrame.setVisible(true);
myFrame.repaint();
myFrame.setLocation(new Point(250,250));
myFrame.setSize(new Dimension(100,100));
myFrame.setTitle("MTA");
myFrame.setVisible(true);
myFrame.repaint();
//*******
Export
//**********************************************
//**********************************************
DOMImplementation domImpl =
GenericDOMImplementation.getDOMImplementation();
Document domFactory= domImpl.createDocument(null, "svg", null);
org.apache.batik.svggen.SVGGeneratorContext ctx =
org.apache.batik.svggen.SVGGeneratorContext.createDefault(domFactory);
ctx.setComment("Generated with Batik SVG Generator");
SVGGraphics2D svgGenerator = new SVGGraphics2D(ctx, false);
Document domFactory= domImpl.createDocument(null, "svg", null);
org.apache.batik.svggen.SVGGeneratorContext ctx =
org.apache.batik.svggen.SVGGeneratorContext.createDefault(domFactory);
ctx.setComment("Generated with Batik SVG Generator");
SVGGraphics2D svgGenerator = new SVGGraphics2D(ctx, false);
myFrame.paint(svgGenerator);
svgGenerator.setSVGCanvasSize(new Dimension(150,150));
String useCssStr = System.getProperty("useCss", "true");
try{
svgGenerator.stream(
new java.io.OutputStreamWriter(
new java.io.FileOutputStream(
new java.io.File("testsvg.svg")),"UTF-8"),
useCssStr.equalsIgnoreCase("true"));
}catch(java.io.UnsupportedEncodingException e1){}
catch(org.apache.batik.svggen.SVGGraphics2DIOException e2){}
catch(java.io.FileNotFoundException e3){}
}
}
svgGenerator.setSVGCanvasSize(new Dimension(150,150));
String useCssStr = System.getProperty("useCss", "true");
try{
svgGenerator.stream(
new java.io.OutputStreamWriter(
new java.io.FileOutputStream(
new java.io.File("testsvg.svg")),"UTF-8"),
useCssStr.equalsIgnoreCase("true"));
}catch(java.io.UnsupportedEncodingException e1){}
catch(org.apache.batik.svggen.SVGGraphics2DIOException e2){}
catch(java.io.FileNotFoundException e3){}
}
}
public class MyFrame extends JFrame{
public void MyFrame(){
}
public void paint(Graphics g){
//******* Blue Dot
//**********************************************
}
public void paint(Graphics g){
//******* Blue Dot
//**********************************************
g.setColor(Color.blue);
g.fillOval(30,30,20,20);
g.fillOval(30,30,20,20);
//******* Red Ball
//**********************************************
//**********************************************
Graphics2D g2 = (Graphics2D)g;
Ellipse2D e = new Ellipse2D.Double(40,40,53,53);
Ellipse2D e = new Ellipse2D.Double(40,40,53,53);
float[] dist = {0, 1};
Color[] colors = {Color.white, Color.red};
RadialGradientPaint rgp = new RadialGradientPaint(new Point2D.Double(60,60),30, dist, colors);
g2.setPaint(rgp);
g2.fill(e);
}
}
Color[] colors = {Color.white, Color.red};
RadialGradientPaint rgp = new RadialGradientPaint(new Point2D.Double(60,60),30, dist, colors);
g2.setPaint(rgp);
g2.fill(e);
}
}
