- From: Dean Jackson <dean.jackson@cmis.csiro.au>
- Date: Tue, 06 Jun 2000 08:54:04 +1000
- To: Bernd Grolig <Bernd.Grolig@ptv.de>
- CC: Vincent Hardy <vincent.hardy@eng.sun.com>, www-svg@w3.org
Bernd,
I've attached a java program to create an SVG document in
Java (using the SVG DOM) and output it to an XML file.
As Vincent (for ProjectX) and Kelvin (for Xerces) have
suggested, the SVGDocument can be output as a typical
XML Document using the XML tools.
This file is org/csiro/svg/parser/CreateSVG.java in the
latest release of the CSIRO toolkit (which will happen
in about 2 hours!). It uses a file XMLWriter.java which
isn't attached to this message but included in the distribution.
Dean
--
package org.csiro.svg.parser;
import org.csiro.svg.dom.*;
import org.w3c.dom.svg.*;
import java.io.*;
// this is a sample file that shows how to create an svg document and
// write it to a file
public class CreateSVG {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("usage: java org.csiro.svg.parser.CreateSVG
out.svg");
System.exit(1);
}
try {
SVGDocument svgDoc = new SVGDocumentImpl(true); // the "true"
indicates that this is to be a stylable svg doc
// create root <svg> element and add it to doc
SVGSVGElement root = (SVGSVGElement)svgDoc.createElement("svg");
svgDoc.appendChild(root);
// set width and height of <svg> element
SVGLength width = root.createSVGLength();
width.setValueAsString("15cm");
SVGLength height = root.createSVGLength();
height.setValue(600);
root.setWidth(width);
root.setHeight(height);
// add a circle
SVGCircleElement circle =
(SVGCircleElement)svgDoc.createElement("circle");
SVGLength cx = root.createSVGLength();
cx.setValue(100);
circle.setCx(cx);
SVGLength cy = root.createSVGLength();
cy.setValue(100);
circle.setCy(cy);
circle.setAttribute("r", "50");
circle.setAttribute("style", "fill:red; stroke:black;
stroke-width:5");
root.appendChild(circle);
// add a rectangle
SVGRectElement rect =
(SVGRectElement)svgDoc.createElement("rect");
SVGLength rectX = root.createSVGLength();
rectX.setValueAsString("200px");
rect.setX(rectX);
SVGLength rectY = root.createSVGLength();
rectY.setValueAsString("250px");
rect.setY(rectY);
rect.setAttribute("width", "200");
rect.setAttribute("height", "150");
rect.setAttribute("style", "fill:none; stroke:blue;
stroke-width:10");
root.appendChild(rect);
// write the svg doc to a file
FileOutputStream out = new FileOutputStream(new File(args[0]));
XmlWriter writer = new XmlWriter(out);
// need to pass in the doctype declaration so that it can be put
at the top of the xml file
writer.print(svgDoc, "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG
20000303 Stylable//EN\" \"svg-20000303-stylable.dtd\" >");
out.close();
} catch (IOException e) {
System.out.println("IOException: " + e.getMessage());
System.exit(1);
}
System.out.println("finished writing svg file: " + args[0]);
System.exit(0);
}
}
Received on Monday, 5 June 2000 18:54:28 UTC