cynest-java

[导入]Batik之SVGGraphics2D生成SVG

在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

posted on 2006-02-14 15:38 cyqian 阅读(1940) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问