> 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: batik-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-h...@xmlgraphics.apache.org

Reply via email to