/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License") + you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.openmeetings.test.batik; import java.io.OutputStreamWriter; import java.io.Writer; import junit.framework.TestCase; import org.apache.batik.dom.svg.SVGDOMImplementation; import org.apache.batik.svggen.SVGGraphics2D; import org.apache.log4j.Logger; import org.junit.Test; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.Element; public class TestSimpleSVGDom extends TestCase { private static final Logger log = Logger.getLogger(TestSVGTextExporter.class); @Test public void testGetDiagramList() { try { DOMImplementation impl = SVGDOMImplementation.getDOMImplementation(); String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI; Document doc = impl.createDocument(svgNS, "svg", null); // Get the root element (the 'svg' element). Element svgRoot = doc.getDocumentElement(); // Set the width and height attributes on the root 'svg' element. svgRoot.setAttributeNS(svgNS, "width", "400"); svgRoot.setAttributeNS(svgNS, "height", "450"); // Create the rectangle. Element rectangle = doc.createElementNS(svgNS, "text"); rectangle.setAttributeNS(svgNS, "x", "10"); rectangle.setAttributeNS(svgNS, "y", "20"); rectangle.setAttributeNS(svgNS, "text", "20"); rectangle.setAttributeNS(svgNS, "width", "100"); rectangle.setAttributeNS(svgNS, "height", "50"); rectangle.setAttributeNS(svgNS, "fill", "red"); //rectangle.setTextContent("textFF"); // Attach the rectangle to the root 'svg' element. svgRoot.appendChild(rectangle); // Finally, stream out SVG to the standard output using // UTF-8 encoding. boolean useCSS = true; // we want to use CSS style attributes //Writer out = new OutputStreamWriter(System.out, "UTF-8"); //OutputStream out = httpServletResponse.getOutputStream(); //httpServletResponse.setContentType("APPLICATION/OCTET-STREAM"); //httpServletResponse.setHeader("Content-Disposition","attachment; filename=\"" + requestedFile + "\""); Writer out = new OutputStreamWriter(System.out, "UTF-8"); //Create an instance of the SVG Generator. SVGGraphics2D svgGenerator = new SVGGraphics2D(doc); svgGenerator.stream(out, useCSS); } catch (Exception er) { log.error("ERROR ", er); System.out.println("Error exporting: " + er); er.printStackTrace(); } } }