xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Archie Cobbs <arc...@dellroad.org>
Subject Re: Copying/Cloning a GVT CompositeNode.
Date Wed, 19 May 2004 16:27:09 GMT
David Bullock wrote:
> [I just want to take a 'template shape' from an SVG file,
> copy it a few times, translate each one, and print it out.
> If there's a better way to do this than GVT, I'd love to
> hear your suggestions.  ]

I don't know if this is any better or worse, but I acomplish this
same idea (I think) by editing the SVG DOM...

In the SVG file are the icons which are just invisible nodes defined
inside the <defs> tag and having "id" attributes with known values.

Then, using the DOM API, I add append a new <use> to the top level
<svg> tag like this:

    SVGElement topNode = ...	// find the top <svg> node
    ...
    String iconId = ...		// id of the icon you want to display
    SVGElement use = (SVGElement)svg.createElementNS(
	SVGDOMImplementation.SVG_NAMESPACE_URI, "use");
    use.setAttributeNS(XPATH_NAMESPACE_URI, "href", "#" + iconId);
    use.setAttribute("visibility", "visible");
    use.setAttribute("x", "" + x);
    use.setAttribute("y", "" + y);
    topNode.appendChild(use);

You must do this within this update thread (I think).

-Archie

__________________________________________________________________________
Archie Cobbs      *        CTO, Awarix        *      http://www.awarix.com

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Mime
View raw message