title: Wrong values of bounding box for text element using Batik
body: <p>I'm trying to draw a rectangle around a text element using getBBox(), the code is pretty straightforward, create document, add text element, boot document and add rectangle. 
  The problem is that getBBox is returning some weird values, am I missing something?</p>
  
  <pre><code>DOMImplementation impl;
  String svgNS;
  SVGDocument doc;
  Element svgRoot;
  
  UserAgent userAgent;
  DocumentLoader loader;
  BridgeContext ctx;
  GVTBuilder builder;
  GraphicsNode rootGN;
  
  ...
  
  // get a DOM and create a document
  impl = SVGDOMImplementation.getDOMImplementation();
  svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
  doc = (SVGDocument)impl.createDocument(svgNS, "svg", null);
  
  // Get (the 'svg' element).
  svgRoot = doc.getDocumentElement();
  
  // Set the width and height attributes on the root 'svg' element.
  svgRoot.setAttributeNS(svgNS, "width", "400");
  svgRoot.setAttributeNS(svgNS, "height", "450");
  
  // Add a text element
  Element txtElem = doc.createElementNS(svgNS, "text");
  txtElem.setAttributeNS(svgNS, "x", "30");
  txtElem.setAttributeNS(svgNS, "y", "50");
  txtElem.setAttributeNS(svgNS, "style", "font-family:Arial;font-size:20;stroke:#000000;#fill:#00ff00;");
  txtElem.setTextContent("sometext");
  
  svgRoot.appendChild(txtElem);
  
  // boot the document
  userAgent = new UserAgentAdapter();
  loader = new DocumentLoader(userAgent);
  ctx = new BridgeContext(userAgent, loader);
  ctx.setDynamicState(BridgeContext.DYNAMIC);
  builder = new GVTBuilder();
  rootGN = builder.build(ctx, doc);
  
  // add a bounding box to text elements
  NodeList nodelist = doc.getElementsByTagName("text");
  for (int i=0; i &lt; nodelist.getLength(); i++) {
      SVGOMTextElement textElem = (SVGOMTextElement)nodelist.item(i);
      SVGRect bbox = textElem.getBBox();
  
      Element rectangle = doc.createElementNS(svgNS, "rect");
      rectangle.setAttributeNS(svgNS, "x", new Float(bbox.getX()).toString());
      rectangle.setAttributeNS(svgNS, "y", new Float(bbox.getY()).toString());
      rectangle.setAttributeNS(svgNS, "width", new Float(bbox.getWidth()).toString());
      rectangle.setAttributeNS(svgNS, "height", new Float(bbox.getHeight()).toString());
      rectangle.setAttributeNS(svgNS, "fill", "rgba(0,0,0,0)");
      rectangle.setAttributeNS(svgNS, "stroke", "#ff0000");
      rectangle.setAttributeNS(svgNS, "stroke-width", "1");
  
      svgRoot.appendChild(rectangle);
  }
  </code></pre>
  
  <p>this is the SVG document that i'm getting, as you can see the rectangle has different X and Y values (width and height are also wrong).</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" contentScriptType="text/ecmascript" zoomAndPan="magnify" width="400" contentStyleType="text/css" preserveAspectRatio="xMidYMid meet" height="450" version="1.0"&gt;
      &lt;text x="30" style="font-family:Georgia;font-size:20;stroke:#000000;#fill:#00ff00;" y="50"&gt;sometext&lt;/text&gt;
      &lt;rect x="0.65234375" fill="rgba(0,0,0,0)" width="55.621094" stroke-width="1" stroke="#ff0000" height="8.597656" y="8.425781"/&gt;
  &lt;/svg&gt;
  </code></pre>