***cough*** it seems to work now … if somebody knows why? this is the same code
after fiddling with it:
something about attribute namespaces?
DOMImplementation domImpl = new SVGDOMImplementation();
SVGDocument svg = (SVGDocument) domImpl.createDocument(
SvgNamespaceContext.SVG_NS_URI,
SvgNamespaceContext.SVG_NS_PREFIX,
null);
SVGGraphics2D graphics = new SVGGraphics2D(svg);
UserAgent userAgent = new UserAgentAdapter();
DocumentLoader loader = new DocumentLoader(userAgent);
BridgeContext ctx = new BridgeContext(userAgent,
loader);
ctx.setDynamicState(BridgeContext.DYNAMIC);
GVTBuilder builder = new GVTBuilder();
GraphicsNode rootGN = builder.build(ctx, svg);
// create a G node
Element g =
svg.createElementNS(SvgNamespaceContext.SVG_NS_URI,SVG12Constants.SVG_G_TAG);
g.setAttributeNS(null,"id", "test-g");
svg.getDocumentElement().appendChild(g);
Element n =
svg.createElementNS(SvgNamespaceContext.SVG_NS_URI,SVG12Constants.SVG_RECT_TAG);
n.setAttributeNS(null,"id", "test-rect");
n.setAttributeNS(null,"x", "5");
n.setAttributeNS(null,"y", "15");
n.setAttributeNS(null,"width", "300");
n.setAttributeNS(null,"height", "150");
n.setAttributeNS(null,"fill", "orange");
n.setAttributeNS(null,"transform", "rotate(10,4,2)");
g.appendChild(n);
System.err.println(" ========> g
"+((SVGLocatable)g).getBBox().getWidth());
System.err.println(" ========> g
"+((SVGLocatable)g).getBBox().getHeight());
System.err.println(" ========> r
"+((SVGLocatable)n).getBBox().getWidth());
System.err.println(" ========> r
"+((SVGLocatable)n).getBBox().getHeight());
System.err.println();
XmlUtil.transform(svg, System.err);
System.err.println();
ByteArrayOutputStream baos = new
ByteArrayOutputStream();
XmlUtil.transform(ctx.getDocument(), baos);
dByte = baos.toByteArray();
System.err.flush();