Hi,

AbstractFOPTextPainter already had a AFP class call and is only extended by a 
AFP class, a senior developer said to me maybe we should rename this class to 
AbstractAFPFOPTextPainter.

Thanks

-----Original Message-----
From: Vincent Hennebert [mailto:vhenneb...@gmail.com] 
Sent: 29 April 2014 09:15
To: fop-dev@xmlgraphics.apache.org
Subject: Re: svn commit: r1590665 - 
/xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java

On 28/04/14 17:06, ssteiner wrote:
> 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/AbstractFOPTextPaint
> er.java
>
> Modified: 
> xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPaint
> er.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/AbstractFOPTextPaint
> er.java (original)
> +++ xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextP
> +++ ainter.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);
> +                        }
> +                    }

AFP-specific code in an abstract text painter? Surely this code shouldn’t be 
there? Sounds like it should be moved into the implementation of drawString.

Vincent

Reply via email to