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;

//******* 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
        //**********************************************
 
        JFrame myFrame = new MyFrame();
  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);   
 
  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){}
 }
}
 
public class MyFrame extends JFrame{
 
 public void MyFrame(){
 }
 
 public void paint(Graphics g){
  //******* Blue Dot
        //**********************************************
 
  g.setColor(Color.blue);
  g.fillOval(30,30,20,20);
 
  //******* Red Ball
        //**********************************************
 
  Graphics2D g2 = (Graphics2D)g;
  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);
 }
}

Reply via email to