Hi.

I am having some problems fetching the sizes (width, height) of an SVG document in a java application using batik. What I'm trying to do is: I display an svg document in an JSVGComponent (I want to write my own zoom, pan, etc. handlers, that's why I don't need to use JSVGCanvas). I would like to show the page borders of the document (displaying a box around the document at the pixel positions corresponding to the document's width and height). (By the way: I'm doing this in an overridden paint() method, displaying my stuff after the JSVGComponent paints itself. I'm aware that I could also draw "underneath" the JSVGComponent if I set it's background color to transparent.)

I already got the offset working (constructing a Point2D(0,0) and transforming it using the getRenderingTransform() AffineTransform.

However, I'm not quite sure what kind of units are used in the internal representation of JSVGComponents... When I fetch the mouse position (using an inverse getRenderingTransform() transformation), I see that it's definitely not millimeters ;-)

The getDocumentSize().getWidth() (not sure of the syntax here) returns the pixel width of the document. However, this doesn't seem to depend on the current zoom factor used by the JSVGComponent... I already tried multiplying this value (or dividing) by getRenderingTransform().getScaleX(), but the getScaleX() method seems to return strangely small values...

I also wanted to try the UnitProcessor to convert the sizes I fetched from the document via the getRootElement().getWidth().getBaseVal() (not sure, I don't have my code with me right now) to pixel (or to millimeters for display)... However, the UnitProcessor needs a Context, and I couldn't find out how to obtain one...

Maybe I'm heading in a totally wrong direction, I suppose there must be a fairly easy way to achieve this ;-)


So, basically, my questions are:
- How can I get the current zoom factor used by the JSVGComponent?
- How can I get/convert the document width/height to millimeters and pixels?
- Is the SVGDocument completely independent of the representation (JSVGComponent or the GVT renderers)? I mean: I got the impression that you can only fetch the document's sizes (getRootElement().getWidth()...) after the GVT build-up/rendering finishes?

Sorry for the long posting, I just wanted to provide a detailed specification of my problem ;-)
Robert.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to