> is it possible to load an SVG document from file and display it in an
> SVGCanvas and additionally modify that document via a Graphics2D object?
>
> For example, is the following possible:
> ------------------/------------------
> final JFrame jFrame= new JFrame();
> final SVGCanvas canvas= new SVGCanvas();
> canvas.setURI(new File("mySVGFile.svg").toURI().toString());
> jFrame.getContentPane().add(canvas);
> jFrame.pack();
> jFrame.setVisible(true);
>
> [...]
>
> final SVGGraphics2D g= new SVGGraphics2D(canvas.getSVGDocument());
> final Rectangle r= new Rectangle(10,10,100,100);
> g.setPaint(Color.RED);
> g.setStroke(new BasicStroke(15f));
> g.draw(r);
>
> [...]
> ------------------/------------------
> to modify the image in the canvas?I found it out. It is: ------------------/------------------ Element root = canvas.getDocument().getDocumentElement(); g.getRoot(root); ------------------/------------------ The rather confusingly named method getRoot(Element) does the writing by appending the drawn elements to the end of the SVG document. Unfortunately, batik always adds an (empty) <def> element with id="genericDefs". So if modifying the document is done multiple times, you end up with several <def> elements with the same id.... Regards Marco --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
