xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rm <ruben.malc...@googlemail.com>
Subject Re: keeping DOM and Graphics in sync
Date Thu, 18 Oct 2012 10:57:15 GMT


***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(); 
Mime
View raw message