Author: lehmi
Date: Sun Feb 26 14:38:51 2017
New Revision: 1784450

URL: http://svn.apache.org/viewvc?rev=1784450&view=rev
Log:
PDFBOX-3579: use fraction value instead of ignoring it

Modified:
    
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

Modified: 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java?rev=1784450&r1=1784449&r2=1784450&view=diff
==============================================================================
--- 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 (original)
+++ 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 Sun Feb 26 14:38:51 2017
@@ -208,7 +208,7 @@ public class Type2CharStringParser
         return new CharStringCommand(b0);
     }
 
-    private Integer readNumber(int b0, DataInput input) throws IOException
+    private Number readNumber(int b0, DataInput input) throws IOException
     {
 
         if (b0 == 28)
@@ -230,15 +230,13 @@ public class Type2CharStringParser
             int b1 = input.readUnsignedByte();
 
             return -(b0 - 251) * 256 - b1 - 108;
-        } 
+        }
         else if (b0 == 255)
         {
             short value = input.readShort();
-            // The lower bytes are representing the digits after 
-            // the decimal point and aren't needed in this context
-            input.readUnsignedByte();
-            input.readUnsignedByte();
-            return (int) value;
+            // The lower bytes are representing the digits after the decimal 
point
+            double fraction = input.readUnsignedShort() / 65535d;
+            return value + fraction;
         } 
         else
         {


Reply via email to