chrisg      2002/11/25 09:01:48

  Modified:    .        Tag: fop-0_20_2-maintain CHANGES
               src/org/apache/fop/render/awt Tag: fop-0_20_2-maintain
                        AWTFontMetrics.java AWTRenderer.java FontSetup.java
  Log:
  Improved AWT Font-measuring/rendering (see bug #14657)
  Submitted by: Ralph LaChance <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.10.2.31 +2 -0      xml-fop/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/xml-fop/CHANGES,v
  retrieving revision 1.10.2.30
  retrieving revision 1.10.2.31
  diff -u -r1.10.2.30 -r1.10.2.31
  --- CHANGES   25 Nov 2002 11:56:51 -0000      1.10.2.30
  +++ CHANGES   25 Nov 2002 17:01:47 -0000      1.10.2.31
  @@ -1,6 +1,8 @@
   ==============================================================================
   Done since 0.20.4 release
   
  +- Improved AWT Font-measuring/rendering (see bug #14657)
  +  Submitted by: Ralph LaChance <[EMAIL PROTECTED]>
   - Updated examples/fo files to remove all errors and warnings during build
     Submitted by: Manuel Mall <[EMAIL PROTECTED]> (see bug #13867)
   - Perfomance tuning (reduced object creation etc.) (see bug #14103)
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.3.2.4   +18 -6     xml-fop/src/org/apache/fop/render/awt/AWTFontMetrics.java
  
  Index: AWTFontMetrics.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/awt/AWTFontMetrics.java,v
  retrieving revision 1.3.2.3
  retrieving revision 1.3.2.4
  diff -u -r1.3.2.3 -r1.3.2.4
  --- AWTFontMetrics.java       8 Nov 2002 10:25:27 -0000       1.3.2.3
  +++ AWTFontMetrics.java       25 Nov 2002 17:01:48 -0000      1.3.2.4
  @@ -177,14 +177,26 @@
       public int width(int i, String family, int style, int size) {
           int w;
           setFont(family, style, size);
  +        
  +        // Nov 18, 2002,  aml/rlc  
  +        // measure character width using getStringBounds for better results
  +        
  +        char [] ac = new char [1];
  +        ac [0] = (char)i;
  +        
  +        double dWidth = fmt.getStringBounds (ac, 0, 1, graphics).getWidth() * 
FONT_FACTOR;
  +        
  +        // The following was left in based on this comment from the past (may be 
vestigial)
  +        
           // the output seems to look a little better if the
           // space is rendered larger than given by
           // the FontMetrics object
  -        if (i <= 32)
  -            w = (int)(1.4 * fmt.charWidth(i) * FONT_FACTOR);
  -        else
  -            w = (int)(fmt.charWidth(i) * FONT_FACTOR);
  -        return w;
  +        
  +        if (i <=32) {
  +          dWidth = dWidth * 1.4;
  +        }
  +
  +        return (int) dWidth;
       }
   
       /**
  
  
  
  1.38.2.10 +12 -1     xml-fop/src/org/apache/fop/render/awt/AWTRenderer.java
  
  Index: AWTRenderer.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/awt/AWTRenderer.java,v
  retrieving revision 1.38.2.9
  retrieving revision 1.38.2.10
  diff -u -r1.38.2.9 -r1.38.2.10
  --- AWTRenderer.java  8 Nov 2002 10:25:27 -0000       1.38.2.9
  +++ AWTRenderer.java  25 Nov 2002 17:01:48 -0000      1.38.2.10
  @@ -373,6 +373,11 @@
   
           graphics = pageImage.createGraphics();
   
  +        // Nov 18, 2002 - [aml/rlc] eliminates layout problems at various scaling
  +        
  +        graphics.setRenderingHint (RenderingHints.KEY_FRACTIONALMETRICS,
  +                                   RenderingHints.VALUE_FRACTIONALMETRICS_ON);
  +
           transform(graphics, scaleFactor, 0);
           drawFrame();
   
  @@ -859,6 +864,12 @@
           int oldPageNumber = pageNumber;
   
           graphics = (Graphics2D)g;
  +        
  +        // Nov 18, 2002 - [aml/rlc] eliminates layout problems at various scaling
  +        
  +        graphics.setRenderingHint (RenderingHints.KEY_FRACTIONALMETRICS,
  +                                   RenderingHints.VALUE_FRACTIONALMETRICS_ON);
  +
           Page aPage = (Page)pageList.get(pageIndex);
           renderPage(aPage);
           graphics = oldGraphics;
  
  
  
  1.3.2.5   +10 -3     xml-fop/src/org/apache/fop/render/awt/FontSetup.java
  
  Index: FontSetup.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/awt/FontSetup.java,v
  retrieving revision 1.3.2.4
  retrieving revision 1.3.2.5
  diff -u -r1.3.2.4 -r1.3.2.5
  --- FontSetup.java    8 Nov 2002 10:25:27 -0000       1.3.2.4
  +++ FontSetup.java    25 Nov 2002 17:01:48 -0000      1.3.2.5
  @@ -20,6 +20,7 @@
   import java.awt.Font;
   import java.awt.Graphics2D;
   import java.util.List;
  +import java.awt.RenderingHints ;
   import java.net.URL;
   
   /**
  @@ -46,8 +47,8 @@
        * triplets for lookup
        *
        * @param fontInfo the font info object to set up
  -     * @param graphics Graphics2D to work on
  -     * @throws FOPException in case of an error during font setup
  +     * @param parent needed, since a live AWT component is needed
  +     * to get a valid java.awt.FontMetrics object
        */
       public static void setup(FontInfo fontInfo, Graphics2D graphics)
           throws FOPException {
  @@ -55,6 +56,12 @@
           FontMetricsMapper metric;
   
           MessageHandler.logln("setting up fonts");
  +
  +        // Nov 18, 2002 - [aml/rlc] eliminates layout problems at various scaling
  +        
  +        graphics.setRenderingHint (RenderingHints.KEY_FRACTIONALMETRICS,
  +                                   RenderingHints.VALUE_FRACTIONALMETRICS_ON);
  +
   
           /*
            * available java fonts are:
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to