You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2015/07/20 21:49:06 UTC

svn commit: r1692011 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

Author: msahyoun
Date: Mon Jul 20 19:49:06 2015
New Revision: 1692011

URL: http://svn.apache.org/r1692011
Log:
PDFBOX-2877: small code cleanup

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java?rev=1692011&r1=1692010&r2=1692011&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java Mon Jul 20 19:49:06 2015
@@ -58,6 +58,12 @@ class AppearanceGeneratorHelper
      * Regardless of other settings in an existing appearance stream Adobe will always use this value.
      */
     private static final int[] HIGHLIGHT_COLOR = {153,193,215};
+ 
+    /**
+     * The scaling factor for font units to PDF units
+     */
+    private static final int FONTSCALE = 1000;    
+    
     
     /**
      * Constructs a COSAppearance from the given field.
@@ -145,7 +151,7 @@ class AppearanceGeneratorHelper
         ContentStreamWriter writer = new ContentStreamWriter(output);
 
         List<Object> tokens = tokenize(appearanceStream);
-        int bmcIndex = tokens.indexOf(Operator.getOperator("BMC"));
+        int bmcIndex = tokens.indexOf(BMC);
         if (bmcIndex == -1)
         {
             // append to existing stream
@@ -161,7 +167,7 @@ class AppearanceGeneratorHelper
         // insert field contents
         insertGeneratedAppearance(widget, appearanceStream, output);
         
-        int emcIndex = tokens.indexOf(Operator.getOperator("EMC"));
+        int emcIndex = tokens.indexOf(EMC);
         if (emcIndex == -1)
         {
             // append EMC
@@ -232,7 +238,7 @@ class AppearanceGeneratorHelper
         float y;
         
         // calculate font metrics at font size
-        float fontScaleY = fontSize / 1000f;
+        float fontScaleY = fontSize / FONTSCALE;
         float fontBoundingBoxAtSize = font.getBoundingBox().getHeight() * fontScaleY;
         float fontCapAtSize = font.getFontDescriptor().getCapHeight() * fontScaleY;
         float fontDescentAtSize = font.getFontDescriptor().getDescent() * fontScaleY;
@@ -262,7 +268,6 @@ class AppearanceGeneratorHelper
                     y = Math.min(fontDescentBased, Math.max(y, fontCapBased));
                 }
             }
-            
         }
         
         // show the text
@@ -352,7 +357,7 @@ class AppearanceGeneratorHelper
         PDRectangle paddingEdge = applyPadding(appearanceStream.getBBox(), 1);
         
         float combWidth = appearanceStream.getBBox().getWidth() / maxLen;
-        float ascentAtFontSize = font.getFontDescriptor().getAscent() / 1000 * fontSize;
+        float ascentAtFontSize = font.getFontDescriptor().getAscent() / FONTSCALE * fontSize;
         float baselineOffset = paddingEdge.getLowerLeftY() +  
                 (appearanceStream.getBBox().getHeight() - ascentAtFontSize)/2;
         
@@ -366,7 +371,7 @@ class AppearanceGeneratorHelper
         for (int i = 0; i < numChars; i++) 
         {
             combString = value.substring(i, i+1);
-            currCharWidth = font.getStringWidth(combString) / 1000 * fontSize/2;
+            currCharWidth = font.getStringWidth(combString) / FONTSCALE * fontSize/2;
             
             xOffset = xOffset + prevCharWidth/2 - currCharWidth/2;
             
@@ -407,7 +412,7 @@ class AppearanceGeneratorHelper
         // display starts with the first entry in Opt.
         int topIndex = ((PDListBox) field).getTopIndex();
         
-        float highlightBoxHeight = font.getBoundingBox().getHeight() * fontSize / 1000 - 2f;
+        float highlightBoxHeight = font.getBoundingBox().getHeight() * fontSize / FONTSCALE - 2f;
         
         // the padding area 
         PDRectangle paddingEdge = applyPadding(appearanceStream.getBBox(), 1);
@@ -436,7 +441,7 @@ class AppearanceGeneratorHelper
         else if (q == PDVariableText.QUADDING_CENTERED || q == PDVariableText.QUADDING_RIGHT)
         {
             float fieldWidth = appearanceStream.getBBox().getWidth();
-            float stringWidth = (font.getStringWidth(value) / 1000) * fontSize;
+            float stringWidth = (font.getStringWidth(value) / FONTSCALE) * fontSize;
             float adjustAmount = fieldWidth - stringWidth - 4;
 
             if (q == PDVariableText.QUADDING_CENTERED)
@@ -462,11 +467,11 @@ class AppearanceGeneratorHelper
            
             if (i == topIndex)
             {
-                yTextPos = yTextPos - font.getFontDescriptor().getAscent() / 1000 * fontSize;
+                yTextPos = yTextPos - font.getFontDescriptor().getAscent() / FONTSCALE * fontSize;
             }
             else
             {
-                yTextPos = yTextPos - font.getBoundingBox().getHeight() / 1000 * fontSize;
+                yTextPos = yTextPos - font.getBoundingBox().getHeight() / FONTSCALE * fontSize;
                 contents.beginText();
             }
 
@@ -513,8 +518,8 @@ class AppearanceGeneratorHelper
             }
             else
             {
-                float yScalingFactor = 1000 * font.getFontMatrix().getScaleY();
-                float xScalingFactor = 1000 * font.getFontMatrix().getScaleX();
+                float yScalingFactor = FONTSCALE * font.getFontMatrix().getScaleY();
+                float xScalingFactor = FONTSCALE * font.getFontMatrix().getScaleX();
                 
                 // fit width
                 float width = font.getStringWidth(value) * font.getFontMatrix().getScaleX();
@@ -567,4 +572,4 @@ class AppearanceGeneratorHelper
                                box.getWidth() - 2 * padding,
                                box.getHeight() - 2 * padding);
     }
-}
+}
\ No newline at end of file