You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2013/11/25 18:43:32 UTC

svn commit: r1545349 - in /pdfbox/branches/1.8: pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ preflight/src/main/java/org/apache/pdfbox/preflight/font/

Author: lehmi
Date: Mon Nov 25 17:43:31 2013
New Revision: 1545349

URL: http://svn.apache.org/r1545349
Log:
PDFBOX-1663: changed data type to avoid broken API

Modified:
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1AfmPfbFont.java
    pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type3FontValidator.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java?rev=1545349&r1=1545348&r2=1545349&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java Mon Nov 25 17:43:31 2013
@@ -49,15 +49,6 @@ import org.apache.pdfbox.util.ResourceLo
 import java.awt.Graphics;
 import java.awt.geom.AffineTransform;
 
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 /**
  * This is the base class for all PDF fonts.
  *
@@ -106,7 +97,7 @@ public abstract class PDFont implements 
     /**
      *  A list a floats representing the widths.
      */
-    private List<Integer> widths = null;
+    private List<Float> widths = null;
 
     /**
      * The static map of the default Adobe font metrics.
@@ -790,15 +781,16 @@ public abstract class PDFont implements 
      * The widths of the characters.  This will be null for the standard 14 fonts.
      *
      * @return The widths of the characters.
+     *
      */
-    public List<Integer> getWidths()
+    public List<Float> getWidths()
     {
         if (widths == null)
         {
             COSArray array = (COSArray)font.getDictionaryObject( COSName.WIDTHS );
             if (array != null)
             {
-                widths = COSArrayList.convertIntegerCOSArrayToList(array);
+                widths = COSArrayList.convertFloatCOSArrayToList(array);
             }
         }
         return widths;
@@ -809,7 +801,7 @@ public abstract class PDFont implements 
      *
      * @param widthsList The widths of the character codes.
      */
-    public void setWidths(List<Integer> widthsList)
+    public void setWidths(List<Float> widthsList)
     {
         widths = widthsList;
         font.setItem( COSName.WIDTHS, COSArrayList.converterToCOSArray( widths ) );

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1545349&r1=1545348&r2=1545349&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java Mon Nov 25 17:43:31 2013
@@ -383,14 +383,14 @@ public class PDTrueTypeFont extends PDSi
             // instead of an array containing the same value for every glyphid 
             boolean isMonospaced = fd.isFixedPitch();
             int nWidths=lastChar-firstChar+1;
-            List<Integer> widths = new ArrayList<Integer>(nWidths);
+            List<Float> widths = new ArrayList<Float>(nWidths);
             // use the first width as default
             // proportional fonts -> width of the .notdef character
             // monospaced-fonts -> the first width
             int defaultWidth = Math.round(widthValues[0] * scaling);
             for (int i = 0; i < nWidths; i++)
             {
-                widths.add(defaultWidth);
+                widths.add((float)defaultWidth);
             }
             // Encoding singleton to have acces to the chglyph name to
             // unicode cpoint point mapping of Adobe's glyphlist.txt
@@ -412,11 +412,11 @@ public class PDTrueTypeFont extends PDSi
                 {
                     if (isMonospaced)
                     {
-                        widths.set(e.getKey().intValue() - firstChar, defaultWidth);
+                        widths.set(e.getKey().intValue() - firstChar, (float)defaultWidth);
                     }
                     else
                     {
-                        widths.set(e.getKey().intValue() - firstChar, Math.round(widthValues[gid] * scaling));
+                        widths.set(e.getKey().intValue() - firstChar, (float)Math.round(widthValues[gid] * scaling));
                     }
                 }
             }

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1AfmPfbFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1AfmPfbFont.java?rev=1545349&r1=1545348&r2=1545349&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1AfmPfbFont.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1AfmPfbFont.java Mon Nov 25 17:43:31 2013
@@ -143,12 +143,12 @@ public class PDType1AfmPfbFont extends P
         List<CharMetric> listmetric = metric.getCharMetrics();
         Encoding encoding = getFontEncoding();
         int maxWidths = 256;
-        List<Integer> widths = new ArrayList<Integer>(maxWidths);
+        List<Float> widths = new ArrayList<Float>(maxWidths);
         int zero = 250;
         Iterator<CharMetric> iter = listmetric.iterator();
         for (int i = 0; i < maxWidths; i++)
         {
-            widths.add(zero);
+            widths.add((float)zero);
         }
         while (iter.hasNext())
         {
@@ -161,13 +161,13 @@ public class PDType1AfmPfbFont extends P
                 if (m.getWx() > 0)
                 {
                     int width = Math.round(m.getWx());
-                    widths.set(n, width);
+                    widths.set(n, (float)width);
                     // germandbls has 2 character codes !! Don't ask me why .....
                     // StandardEncoding = 0373 = 251
                     // WinANSIEncoding = 0337 = 223
                     if (m.getName().equals("germandbls") && n != 223)
                     {
-                        widths.set(0337, width);
+                        widths.set(0337, (float)width);
                     }
                 }
             }

Modified: pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type3FontValidator.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type3FontValidator.java?rev=1545349&r1=1545348&r2=1545349&view=diff
==============================================================================
--- pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type3FontValidator.java (original)
+++ pdfbox/branches/1.8/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type3FontValidator.java Mon Nov 25 17:43:31 2013
@@ -276,7 +276,7 @@ public class Type3FontValidator extends 
      */
     private void checkCharProcsAndMetrics() throws ValidationException
     {
-        List<Integer> widths = font.getWidths();
+        List<Float> widths = font.getWidths();
         if (widths == null || widths.isEmpty())
         {
             this.fontContainer.push(new ValidationError(ERROR_FONTS_DICTIONARY_INVALID,