***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(); 

Reply via email to