xmlgraphics-fop-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sstei...@apache.org
Subject svn commit: r1590665 - /xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java
Date Mon, 28 Apr 2014 15:06:34 GMT
Author: ssteiner
Date: Mon Apr 28 15:06:33 2014
New Revision: 1590665

URL: http://svn.apache.org/r1590665
Log:
FOP-2345 SVG to AFP text spacing wrong

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java?rev=1590665&r1=1590664&r2=1590665&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java Mon Apr
28 15:06:33 2014
@@ -152,8 +152,21 @@ public abstract class AbstractFOPTextPai
             double y = outputLocation.getY();
             try {
                 try {
+                    AFPGraphics2D afpg2d = (AFPGraphics2D)g2d;
+                    int fontSize = 0;
+                    if (font != null) {
+                        fontSize = (int) Math.round(afpg2d.convertToAbsoluteLength(font.getFontSize()));
+                    }
+                    if (fontSize < 6000) {
+                        nativeTextHandler.drawString(g2d, txt, (float) (x + tx), (float)
y);
+                    } else {
+                        double scaleX = g2d.getTransform().getScaleX();
+                        for (int i = 0; i < txt.length(); i++) {
+                            double ad = run.getLayout().getGlyphAdvances()[i] * scaleX;
+                            nativeTextHandler.drawString(g2d, txt.charAt(i) + "", (float)
(x + tx + ad), (float) y);
+                        }
+                    }
                     //TODO draw underline and overline if set
-                    nativeTextHandler.drawString(g2d, txt, (float) (x + tx), (float) y);
                     //TODO draw strikethrough if set
                 } catch (IOException ioe) {
                     if (g2d instanceof AFPGraphics2D) {



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org


Mime
View raw message