vhardy 01/11/19 05:47:43 Modified: sources/org/apache/batik/svggen SVGGraphics2D.java test-resources/org/apache/batik/svggen regsvggen.xml Log: Fixed bug 4945. Added corresponding regression test. Revision Changes Path 1.29 +28 -1 xml-batik/sources/org/apache/batik/svggen/SVGGraphics2D.java Index: SVGGraphics2D.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/svggen/SVGGraphics2D.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- SVGGraphics2D.java 2001/11/02 12:58:31 1.28 +++ SVGGraphics2D.java 2001/11/19 13:47:43 1.29 @@ -45,7 +45,7 @@ * * * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a> - * @version $Id: SVGGraphics2D.java,v 1.28 2001/11/02 12:58:31 vhardy Exp $ + * @version $Id: SVGGraphics2D.java,v 1.29 2001/11/19 13:47:43 vhardy Exp $ * @see org.apache.batik.ext.awt.g2d.GraphicContext * @see org.apache.batik.svggen.DOMTreeManager * @see org.apache.batik.svggen.DOMGroupManager @@ -1086,6 +1086,28 @@ SVGFont.recordFontUsage(s, getFont()); } + Font font = getFont(); + + // Account for the font transform if there is one + AffineTransform txtTxf = null; + AffineTransform savTxf = getTransform(); + + if (font != null){ + txtTxf = font.getTransform(); + if (txtTxf != null && !txtTxf.isIdentity()){ + // + // The additional transform applies about the text's origin + // + AffineTransform t = new AffineTransform(); + t.translate(x, y); + t.concatenate(txtTxf); + t.translate(-x, -y); + this.transform(t); + } else { + txtTxf = null; + } + } + Element text = getDOMFactory().createElementNS(SVG_NAMESPACE_URI, SVG_TEXT_TAG); text.setAttributeNS(null, SVG_X_ATTRIBUTE, @@ -1097,6 +1119,11 @@ XML_PRESERVE_VALUE); text.appendChild(getDOMFactory().createTextNode(s)); domGroupManager.addElement(text, DOMGroupManager.FILL); + + if (txtTxf != null){ + this.setTransform(savTxf); + } + } else { GlyphVector gv = getFont(). createGlyphVector(getFontRenderContext(), s); 1.13 +2 -1 xml-batik/test-resources/org/apache/batik/svggen/regsvggen.xml Index: regsvggen.xml =================================================================== RCS file: /home/cvs/xml-batik/test-resources/org/apache/batik/svggen/regsvggen.xml,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- regsvggen.xml 2001/11/13 07:23:04 1.12 +++ regsvggen.xml 2001/11/19 13:47:43 1.13 @@ -8,7 +8,7 @@ <!-- ========================================================================= --> <!-- @author [EMAIL PROTECTED] --> -<!-- @version $Id: regsvggen.xml,v 1.12 2001/11/13 07:23:04 vhardy Exp $ --> +<!-- @version $Id: regsvggen.xml,v 1.13 2001/11/19 13:47:43 vhardy Exp $ --> <!-- ========================================================================= --> <testSuite id="svggen" name="SVGGraphics2D Accuracy Testing" class="org.apache.batik.svggen.SVGGeneratorTests"> <test id="ATransform" /> @@ -17,6 +17,7 @@ <test id="BasicShapes2" /> <test id="BStroke" /> <test id="Bug4389" /> + <test id="Bug4945" /> <test id="Clip" /> <test id="Color1" /> <test id="Color2" />
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]