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);