batik相关说明
batik是apache下的一个开源、免费项目 http://xmlgraphics.apache.org/batik/download.html
batik用于java处理SVG矢量图,众多浏览器对于SVG都提供了很好的支持,所以,不用将SVG格式换成PNG、JPG等格式就可以直接输出到浏览器
batik 的依赖
由于本 demo 只是使用 batik 在 servlet 中往页面输出简单的 SVG 图像,根据前面 提到的模块依赖图 ,将 batik 相关的 jar 放入 WEB-INF/lib 下:batik-awt-util.jar,
batik-dom.jar,batik-ext.jar,batik-svggen.jar,batik-util.jar,batik-xml.jar
// Get a DOMImplementation.
DOMImplementation domImpl = GenericDOMImplementation
.getDOMImplementation();
// Create an instance of org.w3c.dom.Document.
String svgNS = "http://www.w3.org/2000/svg";
Document document = domImpl.createDocument(svgNS, "svg", null);
// Create an instance of the SVG Generator.
SVGGraphics2D g2d = new SVGGraphics2D(document);
// Ask the test to render into the SVG Graphics2D implementation.
g2d.setPaint(Color.yellow);
g2d.fill(new Rectangle(400, 0, 1000, 800));
g2d.setPaint(Color.black);
g2d.setFont(new Font("Times New Roman",Font.PLAIN,28));
g2d.drawString("12345", 500, 200);
g2d.drawString("123456", 500, 400);
int x1,x2,y1,y2;
x1=100;
y1=180;
x2=600;
y2=210;
g2d.drawLine(x1, y1, x2, y1);
g2d.drawLine(x1, y2, x2, y2);
g2d.drawLine(x1, y1, x1, y2);
g2d.drawLine(x2, y1, x2, y2);g2d.drawLine(x2, y1, x2, y2);
g2d.drawLine(x1, y1, x2, y2);
g2d.draw3DRect(x1, y1, 200, 300, false);
g2d.drawArc(x1, y1, 200, 300, 0,270);//弧
g2d.drawOval(x2, y2, 200, 300);//椭圆
g2d.drawRect(x2, y2, 200, 300);//矩形
g2d.setPaint(Color.blue);
g2d.drawRoundRect(x2, y1, 200, 300, 0,90);//圆角矩形
int[] xPoints={600, 650,700};
int[] yPoints={180,150,210};
g2d.drawPolygon(xPoints, yPoints, yPoints.length);//多边形
File file=new File("E:/sss.svg");
Writer w= new FileWriter(file);
g2d.stream(w, true);