在Java平台上,通过java.awt.Graphics2D抽象类来实现图形功能,该类提供了诸如
drawRect,fillRect,以及drawString等方法。而Batik的SVGGraphics2D是一个专门的工具
,用来生成SVG文本内容而不是在屏幕上显示或打印。
SVGGraphics2D提供了如下特点的功能
1、允许应用程序将图形输出成SVG格式
2、输出为SVG的过程不需要修改任何图形代码
3、提供给用户DOM API功能来处理产生的文档
生成SVG的三个步骤:
1、创建org.w3c.dom.Document的实例,生成器利用它建立XML内容。创建一个SVG生
成器则使用Document实例。
// Get a DOMImplementation
DOMImplementation domImpl =
GenericDOMImplementation.getDOMImplementation();
// Create an instance of org.w3c.dom.Document
Document document = domImpl.createDocument(null, "svg", null);
// Create an instance of the SVG Generator
SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
2、在SVG生成器上调用表现代码,如paint方法
// Ask the test to render into the SVG Graphics2D implementation
TestSVGGen test = new TestSVGGen();
test.paint(svgGenerator);
3、输出SVG内容,生成器可以通过任何一个java.io.Writer把内容stream出来。
// Finally, stream out SVG to the standard output using UTF-8
// character to byte encoding
boolean useCSS = true; // we want to use CSS style attribute
Writer out = new OutputStreamWriter(System.out, "UTF-8");
svgGenerator.stream(out, useCSS);
注:SVG在表达属性时可以由两种方式,XML属性和CSS方式。
文章来源:
http://cynest.cn/drupal/?q=node/612