xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mark.hanfl...@ps.ge.com
Subject RE: Exceptions trying to create inverse transform of an SVG file.
Date Wed, 03 Apr 2002 15:08:24 GMT
Try SVGDocumentFactory in the org/apache/batik/dom/svg package

SVGDocumentFactory creates the DOM which the bridge uconverts it into a
GVTTree which then renders it for the JVGTComponent.

-----Original Message-----
From: David Smith [mailto:David.Smith@aeroint.com]
Sent: Wednesday, April 03, 2002 9:47 AM
To: 'Batik Users'
Subject: RE: Exceptions trying to create inverse transform of an SVG
file.


Thanks,

adding a component.setSize() removed the errors, but unfortunately now it
doesnt load anything.  I still get a null document.

Ive tried this with a couple of other files as well, still with no luck.

What I really need is a way of loading an SVGDocument direct from file.  It
seems like a really obvious requirement but I cant find the class anywhere.

Dave

-----Original Message-----
From: Michael Gale [mailto:michael.gale@bitflash.com]
Sent: 03 April 2002 15:41
To: 'Batik Users'
Subject: RE: Exceptions trying to create inverse transform of an SVG
file.


This is sometimes caused by the parent component whose size has not been
set.

Michael

-----Original Message-----
From: David Smith [mailto:David.Smith@aeroint.com]
Sent: Wednesday, April 03, 2002 9:35 AM
To: Batik Users
Subject: Exceptions trying to create inverse transform of an SVG file.


Dear All,

I have a component extending the JSVGCanvas class that needs to render an
SVG file from disk.  I am currently calling canvas.setURI(url.toString())
which seems to find and load the file but it then puts up an exception
window complaining of zero dererminants when trying to create an inverse
AffineTransform.  

This is the part of code that loads the document..

    // cl is the source of the SVG url

    JSVGCanvas component = new JSVGCanvas();
    javax.swing.JOptionPane.showMessageDialog(null, cl.getURL().toString());

    component.setURI(cl.getURL().toString());
    document = component.getSVGDocument();

    javax.swing.JOptionPane.showMessageDialog(null, "Document loaded into
component : " + document);

The final line shows null as the document.  Shortly after I get the affine
transform exceptions.
    
The svg file is about as simple as it gets:

<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150">
	<circle style="fill:yellow" cx="200" cy="100" r="90" /> 
</svg>

and the exception is:

java.awt.geom.NoninvertibleTransformException: Determinant is 0 	
	at
java.awt.geom.AffineTransform.createInverse(AffineTransform.java:1898) 	
	at
org.apache.batik.swing.gvt.JGVTComponent.setRenderingTransform(Unknown
Source) 	
	at
org.apache.batik.swing.svg.JSVGComponent.computeRenderingTransform(Unknown
Source) 	
	at org.apache.batik.swing.gvt.JGVTComponent.setGraphicsNode(Unknown
Source) 	
	at org.apache.batik.swing.svg.JSVGComponent.access$201(Unknown
Source) 	
	at
org.apache.batik.swing.svg.JSVGComponent$SVGListener.gvtBuildCompleted(Unkno
wn Source) 	
	at org.apache.batik.swing.svg.GVTTreeBuilder$2.run(Unknown Source)

	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)

	at java.awt.EventQueue.dispatchEvent(EventQueue.java:337) 	
	at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:131) 	
	at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:98) 	
	at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 	
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)

Is there a better way to load a document from file?  I dont really want the
canvas at this stage.  I know of the SAXSVGDocumentFactory class but the
constructor needs a classname for a SAX parser, which I cannot find.

Can anyone shed light on this problem?

Thanks,
Dave

************************************************************************
This Internet E-mail is intended solely for the person to whom it is
addressed. It may contain confidential or privileged information. If you
have received it in error please notify us immediately by telephone and
destroy the transmission. You must not copy, distribute or take any action
in reliance on it.

Aerosystems International               Phone: +44 (0)1935 443000
                                        Fax  : +44 (0)1935 443111
                                        Web  : www.aeroint.com
************************************************************************

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org

************************************************************************
This Internet E-mail is intended solely for the person to whom it is
addressed. It may contain confidential or privileged information. If you
have received it in error please notify us immediately by telephone and
destroy the transmission. You must not copy, distribute or take any action
in reliance on it.

Aerosystems International               Phone: +44 (0)1935 443000
                                        Fax  : +44 (0)1935 443111
                                        Web  : www.aeroint.com
************************************************************************

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Mime
View raw message