Hi Rich,

Rich Boakes wrote:

Being new to Batik this may be a really silly question, but I seem to be making a mistake that is stumping me.

I have a program that creates an SVG DOM and dumps it to a file. The file renders fine in the Adobe plugin on IE [1], and also looks good when imported into Visio.

This isn't a very good test ;) For two reasons, first Adobe tends to be quite forgiving (I don't have experience with Visio). Second, the dump you referenced is missing the 'xlink:' prefix on the href attributes on the textPath Elements. Now you must be setting the Namespace when you construct the DOM otherwise Batik would complain that the textPath element didn't have an 'href'. So in general saving a DOM and restoring it may not have a high fidelity.

The problem I have is that if, instead of just saving the file, I try and display is using JSVGCanvas (via the setDocument method), then I get a BridgeException [2].

I suspect that when you create the 'path' elements for the textPath you are _not_ setting the SVG namespace. This bug will 'disappear' upon save and restore since the elements don't have a prefix.

I've given the FAQ's a read through but come out the other end still baffled, are there any gotchas that I've missed? I'll hold back from pasting code yet in the hope that there's something blindingly obvious...

Thanks
-Rich

[1] The output that can be loaded:
http://rdfx.org/images/batikdump1.svg

[2] The error message:
org.apache.batik.bridge.BridgeException: null:-1
Cannot find the referenced element:
"#majpath1113527114427"
specified on the element <textPath> - may be a problem of id
at org.apache.batik.bridge.BridgeContext.getReferencedElement(BridgeContext.java:582)


at org.apache.batik.bridge.SVGTextPathElementBridge.createTextPath(SVGTextPathElementBridge.java:65)

at org.apache.batik.bridge.SVGTextElementBridge.fillAttributedStringBuffer(SVGTextElementBridge.java:859)

at org.apache.batik.bridge.SVGTextElementBridge.buildAttributedString(SVGTextElementBridge.java:780)

at org.apache.batik.bridge.SVGTextElementBridge.computeLaidoutText(SVGTextElementBridge.java:501)

at org.apache.batik.bridge.SVGTextElementBridge.buildGraphicsNode(SVGTextElementBridge.java:237)

at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:210)
at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:161)
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:205)
at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:161)
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:205)
at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:161)
at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:77)
at org.apache.batik.swing.svg.GVTTreeBuilder.run(GVTTreeBuilder.java:95)


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



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



Reply via email to