Hi Qian,
"Qian Li" <[EMAIL PROTECTED]> wrote on 12/13/2007 09:32:35 AM:
> I have a SVGOMTextElement, I want to know how to get the text length.
> I have tried both getBBox() and getComputedTextLength(), they both
> have null values. Would anyone please tell me if I should set anything
> before using these methods?
You can't get information on text element's like this
independent of a document. So you should use the
batik.dom.svg.SVGDOMImplementation to create your Document.
Then use that document to create your text elements
(createElementNS). You must append the text elements to
the document (appendChild).
Then before calling getBBox you must boot the CSS and SVG
DOM's:
http://wiki.apache.org/xmlgraphics-batik/BootSvgAndCssDom
>
> Thanks very much.
> Qian
>
> Here is my code:
> -----------------------------------------------------
> SVGOMTextElement basicText = new SVGOMTextElement(null, svgDocument );
> basicText.setTextContent(text);
>
> System.out.println("[SVGText::setText] BBox ="+basicText.getBBox());
> System.out.println("[SVGText::setText] text
> length="+basicText.getComputedTextLength());
> ------------------------------------------------------
>
> Here is the exceptions
> ------------------------------------------------------
> [SVGText::setText] BBox =null
> null
> java.lang.NullPointerException
> at org.apache.batik.dom.svg.SVGTextContentSupport.
> getComputedTextLength(SVGTextContentSupport.java:240)
> at org.apache.batik.dom.svg.SVGOMTextContentElement.
> getComputedTextLength(SVGOMTextContentElement.java:186)
> at com.gulfstream.software.constable.graphics.SVGText.
> setText(SVGText.java:112)
> at com.gulfstream.software.constable.graphics.SVGText.
> <init>(SVGText.java:52)
> at com.gulfstream.software.harris.plugins.AdditionPlugin.
> renderSVG(AdditionPlugin.java:88)
> at com.gulfstream.software.constable.ide.MondrianSVGCanvas.
> drop(MondrianSVGCanvas.java:264)
> at java.awt.dnd.DropTarget.drop(DropTarget.java:430)
> at sun.awt.dnd.SunDropTargetContextPeer.
> processDropMessage(SunDropTargetContextPeer.java:500)
> at sun.awt.X11.XDropTargetContextPeer.
> processDropMessage(XDropTargetContextPeer.java:165)
> at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.
> dispatchDropEvent(SunDropTargetContextPeer.java:812)
> at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.
> dispatchEvent(SunDropTargetContextPeer.java:736)
> at
sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:30)
> at java.awt.Component.dispatchEventImpl(Component.java:4267)
> at java.awt.Container.dispatchEventImpl(Container.java:2116)
> at java.awt.Component.dispatchEvent(Component.java:4240)
> at java.awt.LightweightDispatcher.
> retargetMouseEvent(Container.java:4322)
> at java.awt.LightweightDispatcher.
> processDropTargetEvent(Container.java:4057)
> at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:3911)
> at java.awt.Container.dispatchEventImpl(Container.java:2102)
> at java.awt.Window.dispatchEventImpl(Window.java:2429)
> at java.awt.Component.dispatchEvent(Component.java:4240)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> at java.awt.EventDispatchThread.
> pumpOneEventForFilters(EventDispatchThread.java:273)
> at java.awt.EventDispatchThread.
> pumpEventsForFilter(EventDispatchThread.java:183)
> at java.awt.EventDispatchThread.
> pumpEventsForHierarchy(EventDispatchThread.java:173)
> at java.awt.EventDispatchThread.
> pumpEvents(EventDispatchThread.java:168)
> at java.awt.EventDispatchThread.
> pumpEvents(EventDispatchThread.java:160)
> at
java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>