You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Luis Bernardo <lm...@gmail.com> on 2014/05/02 01:13:28 UTC

Re: svn commit: r1590665 - /xmlgraphics/fop/trunk/src/java/org/apache/fop/svg/AbstractFOPTextPainter.java

This is indeed confusing but the problem comes from before. This 
abstract class is abstract only in name since it is only extended by the 
AFPTextPainter class. I think I may merge both and move the resulting 
class to one of the afp packages.

On 4/29/14, 9:15 AM, Vincent Hennebert wrote:
> 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/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);
>> +                        }
>> +                    }
>
> 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