Hi Peruzzi,

Peruzzi Alessandro wrote:

> Thanks but my program generated same errors.

    You need to boot the 'graphics' part of the
SVG Document.  Without this the extended SVG DOM
mostly won't work.

      UserAgent      userAgent;
      DocumentLoader loader;
      BridgeContext  ctx;
      GVTBuilder builder;

      userAgent = new UserAgentAdapter();
      loader    = new DocumentLoader(userAgent);
      ctx       = new BridgeContext(userAgent, loader);
      ctx.setDynamicState(BridgeContext.DYNAMIC);
      builder   = new GVTBuilder();
      builder.build(ctx, svgDoc);

    After this the extended SVG DOM and the CSS
interfaces will be 'live'.  If you are just
'reading' the SVG tree and not modifying it
you can use 'STATIC' instead of 'DYNAMIC' which
will use slightly less memory.

> 
> example:
> 
> in a main program
> 
> import org.w3c.dom.*;
> import org.w3c.dom.svg.*;
> import java.io.*;
> import org.apache.batik.dom.*;
> import org.apache.batik.dom.util.*;
> import org.apache.batik.dom.svg.*;
> import org.apache.batik.util.*;
> 
> public class TestSVG
> {
>   public static void main(String[] args)
>   {
>     DOMImplementation impl = (SVGDOMImplementation)
> SVGDOMImplementation.getDOMImplementation();
>     String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
>     SVGDocument svgDoc = (SVGDocument)(impl.createDocument
> (svgNS, "svg", null));
> 
>     SVGSVGElement root = svgDoc.getRootElement();
>     
>     SVGOMTextElement t1 = (SVGOMTextElement)svgDoc.createElementNS
> (svgNS, SVGConstants.SVG_TEXT_TAG);
>     t1.setAttribute(SVGConstants.SVG_X_ATTRIBUTE, "80");
>     t1.setAttribute(SVGConstants.SVG_Y_ATTRIBUTE, "100");
>     t1.setAttribute(SVGConstants.CSS_FONT_SIZE_PROPERTY, "12");
>     t1.setAttribute(SVGConstants.CSS_FONT_FAMILY_PROPERTY, "times");
>     t1.setAttribute(SVGConstants.CSS_FILL_PROPERTY, "yellow");
> 
>     Text text1 = svgDoc.createTextNode("hello world");
>     t1.appendChild(text1);
>     root.appendChild(t1);
> 
> 
> // now I want t1 width/height in pixel
> // but follow row of my code generate error
> 
>    System.out.println("t1="+((SVGOMTextElement)t1).getBBox().gettWidth
> ());
> 
> 
> // the error is
> java.lang.NullPointerException
> 
>       at org.apache.batik.dom.svg.SVGLocatableSupport$1.getWidth
> (Unknown Source)
> 
>       at sisvg2.TestSVG.main(TestSVG.java:31)
> 
> Exception in thread "main"
> 
> // but if i use
> 
> System.out.println("t1="+((SVGOMTextElement)t1).getBBox());
> 
> runtime print [EMAIL PROTECTED]
> 
> 
> What is my errors.
> Thanks a lot from Alessandro (italy)
> 
> 
> 
> 
> 
> 
> --- In svg-developers@yahoogroups.com, Holger Will <[EMAIL PROTECTED]> 
> wrote:
> 
>>Peruzzi Alessandro wrote:
>>
>>
>>>Hi.
>>>I've a problem.
>>>I'd like to know how many pixel have a <text> element in a 
> 
> specific
> 
>>>font-family and font-width
>>>
>>>example:
>>><text font-family="verdana" font-width="10">Hello world</text>
>>>
>>>Hello world how many pixel in width or in height effectly ?
>>>
>>>Thanks a lot.
>>>
>>>Alessandro Peruzzi
>>
>>Hi Alessandro
>>you could use getBBox() or getComputedTextLength()
>>id say use getBBox().
>>cheers
>>Holger
> 
> 
> 
> 
> 
> 
> -----
> To unsubscribe send a message to: [EMAIL PROTECTED]
> -or-
> visit http://groups.yahoo.com/group/svg-developers and click "edit my 
> membership"
> ---- 
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 



-----
To unsubscribe send a message to: [EMAIL PROTECTED]
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my 
membership"
---- 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/svg-developers/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to