Hello,
Thanks for your response.
I downloaded the 1.8pre build (dated October 6th, 2010).
http://people.apache.org/builds/xml-batik/batik-src-10-10-06.zip
I created a test case to demonstrate my problem.
Here is the source code.
public class TestSvg {
public static org.apache.batik.gvt.GraphicsNode getSvgIcon(java.net.URL
url) {
org.apache.batik.gvt.GraphicsNode svgIcon = null;
try {
String xmlParser =
org.apache.batik.util.XMLResourceDescriptor.getXMLParserClassName();
org.apache.batik.dom.svg.SAXSVGDocumentFactory df = new
org.apache.batik.dom.svg.SAXSVGDocumentFactory(
xmlParser);
org.w3c.dom.svg.SVGDocument doc =
df.createSVGDocument(url.toString());
org.apache.batik.bridge.UserAgent userAgent = new
org.apache.batik.bridge.UserAgentAdapter();
org.apache.batik.bridge.DocumentLoader loader = new
org.apache.batik.bridge.DocumentLoader(userAgent);
org.apache.batik.bridge.BridgeContext ctx = new
org.apache.batik.bridge.BridgeContext(userAgent, loader);
ctx.setDynamicState(org.apache.batik.bridge.BridgeContext.DYNAMIC);
org.apache.batik.bridge.GVTBuilder builder = new
org.apache.batik.bridge.GVTBuilder();
svgIcon = builder.build(ctx, doc);
} catch (Exception excp) {
svgIcon = null;
excp.printStackTrace();
}
return svgIcon;
}
public static void paintSvgIcon(java.awt.Graphics2D g,
org.apache.batik.gvt.GraphicsNode svgIcon, int x, int y,
double scaleX, double scaleY) {
java.awt.geom.AffineTransform transform = new
java.awt.geom.AffineTransform(scaleX, 0.0, 0.0, scaleY, x, y);
svgIcon.setTransform(transform);
svgIcon.paint(g);
}
public static org.apache.batik.svggen.SVGGraphics2D getSvgPainter() {
org.w3c.dom.DOMImplementation impl =
org.apache.batik.dom.GenericDOMImplementation.getDOMImplementation();
String svgNS = http://www.w3.org/2000/svg;;
org.w3c.dom.Document document = impl.createDocument(svgNS,
svg, null);
org.apache.batik.svggen.SVGGeneratorContext ctx =
org.apache.batik.svggen.SVGGeneratorContext.createDefault(
document);
ctx.setComment(SVG Test);
ctx.setEmbeddedFontsOn(true);
org.apache.batik.svggen.SVGGraphics2D g2D = new
org.apache.batik.svggen.SVGGraphics2D(ctx, true);
g2D.addRenderingHints(new
java.awt.RenderingHints(java.awt.RenderingHints.KEY_ANTIALIASING,
java.awt.RenderingHints.VALUE_ANTIALIAS_ON));
g2D.setRenderingHint(java.awt.RenderingHints.KEY_TEXT_ANTIALIASING,
java.awt.RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
return g2D;
}
public static String
getSvgFileAsString(org.apache.batik.svggen.SVGGraphics2D svgPainter) {
boolean useCSS = true;
java.io.StringWriter writer = new java.io.StringWriter(10);
try {
svgPainter.stream(writer, useCSS);
} catch (org.apache.batik.svggen.SVGGraphics2DIOException excp)
{
System.err.println(Could not write SVG);
System.err.println(excp);
return null;
}
return writer.toString();
}
public static void main(String[] args) {
java.net.URL url =
TestSvg.class.getResource(Process-stop.svg);
final org.apache.batik.gvt.GraphicsNode icon = getSvgIcon(url);
//Show the graphics on screen
javax.swing.JFrame frame = new javax.swing.JFrame(SVG);
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
javax.swing.JPanel panel = new javax.swing.JPanel() {
public void paintComponent(java.awt.Graphics g) {
java.awt.Graphics2D g2D =
(java.awt.Graphics2D)g;
paintSvgIcon(g2D, icon, 50, 50, 1.0, 1.0);
}
};
frame.getContentPane().add(panel);
frame.setSize(150,150);
frame.setVisible(true);
//Save the graphics to a file
org.apache.batik.svggen.SVGGraphics2D painter = getSvgPainter();
painter.setSVGCanvasSize(new
java.awt.Dimension(frame.getWidth(),
frame.getHeight()));
frame.paint(painter);
String fileContents = getSvgFileAsString(painter);
try {