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 2014/11/29 18:49:09 UTC

svn commit: r1642458 - in /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font: PDFont.java PDType1CFont.java PDType1Font.java

Author: lehmi
Date: Sat Nov 29 17:49:08 2014
New Revision: 1642458

URL: http://svn.apache.org/r1642458
Log:
PDFBOX-2377: revert changes committed in 1627810

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/PDType1CFont.java
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.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=1642458&r1=1642457&r2=1642458&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 Sat Nov 29 17:49:08 2014
@@ -570,18 +570,14 @@ public abstract class PDFont implements 
     {
         for( int i=0; i<256; i++ )
         {
-            // ISO-8859-1 doesn't support the whole range
-            if (i >= 32 && (i < 127 || i > 159))
+            try
             {
-                try
-                {
-                    SINGLE_CHAR_STRING[i] = new String( new byte[] {(byte)i}, "ISO-8859-1" );
-                }
-                catch (UnsupportedEncodingException e)
-                {
-                    // Nothing should happen here
-                    LOG.error(e,e);
-                }
+                SINGLE_CHAR_STRING[i] = new String( new byte[] {(byte)i}, "ISO-8859-1" );
+            }
+            catch (UnsupportedEncodingException e)
+            {
+                // Nothing should happen here
+                LOG.error(e,e);
             }
             for( int j=0; j<256; j++ )
             {
@@ -598,7 +594,7 @@ public abstract class PDFont implements 
         }
     }
 
-    protected String getStringFromArray( byte[] c, int offset, int length ) throws IOException
+    private static String getStringFromArray( byte[] c, int offset, int length ) throws IOException
     {
         String retval = null;
         if( length == 1 )

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java?rev=1642458&r1=1642457&r2=1642458&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java Sat Nov 29 17:49:08 2014
@@ -92,6 +92,8 @@ public class PDType1CFont extends PDSimp
 
     private static final byte[] SPACE_BYTES = {(byte)32};
 
+    private final int charOffset;
+    
     /**
      * Constructor.
      * @param fontDictionary the corresponding dictionary
@@ -99,6 +101,7 @@ public class PDType1CFont extends PDSimp
     public PDType1CFont( COSDictionary fontDictionary ) throws IOException
     {
         super( fontDictionary );
+        charOffset = getFirstChar() > -1 ? getFirstChar() - 1 : 0; 
         load();
     }
 
@@ -121,7 +124,11 @@ public class PDType1CFont extends PDSimp
     {
         int code = getCodeFromArray(bytes, offset, length);
         String character = null;
-        if (codeToSID.containsKey(code))
+        if (charOffset > 0)
+        {
+            code -= charOffset;
+        }
+        else if (codeToSID.containsKey(code))
         {
             code = codeToSID.get(code);
         }

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java?rev=1642458&r1=1642457&r2=1642458&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java Sat Nov 29 17:49:08 2014
@@ -463,13 +463,11 @@ public class PDType1Font extends PDSimpl
     {
         if (type1CFont != null && getFontEncoding() == null)
         {
-            // check for ASCII values >= 32
-            if (length == 1 && c[offset] >= 32)
+            String character = type1CFont.encode(c, offset, length);
+            if (character != null)
             {
-                return getStringFromArray( c, offset, length );
+                return character;
             }
-            // handle values < 32 and negative byte values (int > 127)
-            return type1CFont.encode(c, offset, length);
         }
         return super.encode(c, offset, length);
     }