svg to svg saving problem
hi,
I am a beginner batik user and at the moment I am working on apiece of
code which would allow me to open svg file edit it and save it as an
svg file.
I have sucessfully loaded svg file (thanks to thomas.deweese) and
currently I'm facing a problem with saving it to an svg file.
Below is the sourcecode for the function which is supposed to do the
task.
public void editSVG (String inputFilename, String outputFilename)
throws Exception {
String svgURI = new
File(inputFilename).toURL().toString();
try{
UserAgentAdapter ua = new UserAgentAdapter();
DocumentLoader loader = new DocumentLoader(ua);
Document doc = loader.loadDocument(svgURI);
// get the root element (the svg element)
Element svgRoot = doc.getDocumentElement();
// set the width and height attribute on the root svg
element
svgRoot.setAttributeNS(svgURI, "width", "400");
svgRoot.setAttributeNS(svgURI, "height", "330");
// create the rectangle
Element rectangle = doc.createElementNS(svgNS, "rect");
rectangle.setAttributeNS(null, "x", "200");
rectangle.setAttributeNS(null, "y", "200");
rectangle.setAttributeNS(null, "width", "100");
rectangle.setAttributeNS(null, "height", "100");
rectangle.setAttributeNS(null, "fill", "red");
// attach the rectangle to the svg root element
svgRoot.appendChild(rectangle);
TranscoderInput input = new TranscoderInput(doc);
OutputStream ostream = new
FileOutputStream(outputFilename);
TranscoderOutput output = new TranscoderOutput(ostream);
svgTrans.transcode(input, output);
ostream.flush();
ostream.close();
System.out.println("SVG edited");
} catch (Exception e){
System.out.println("Error: " + e);
}
}
The error message i'm recieving during the program runtime:
Exception in thread "main" java.lang.Error: Writer expected
at
org.apache.batik.transcoder.svg2svg.SVGTranscoder.transcode(Unknown
Source)
at SVGtoJPEG.editSVG(SVGtoJPEG.java:96)
at SVGtoJPEG.main(SVGtoJPEG.java:112)