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 2012/03/17 11:24:08 UTC

svn commit: r1301909 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font: PDFont.java PDType0Font.java PDType1CFont.java PDType1Font.java

Author: leleueri
Date: Sat Mar 17 10:24:08 2012
New Revision: 1301909

URL: http://svn.apache.org/viewvc?rev=1301909&view=rev
Log:
[PDFBOX-1253] encodeToCid uses the encode method to know if the character has been found.

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java?rev=1301909&r1=1301908&r2=1301909&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java Sat Mar 17 10:24:08 2012
@@ -529,6 +529,15 @@ public abstract class PDFont implements 
         return retval;
     }
 
+    public int encodeToCID( byte[] c, int offset, int length ) throws IOException
+    {
+        int code = -1;
+        if (encode(c, offset, length) != null) {
+        	code = getCodeFromArray( c, offset, length );
+        }
+        return code;
+    }
+    
     private static final String[] SINGLE_CHAR_STRING = new String[256];
     private static final String[][] DOUBLE_CHAR_STRING = new String[256][256];
     static

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java?rev=1301909&r1=1301908&r2=1301909&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java Sat Mar 17 10:24:08 2012
@@ -175,21 +175,23 @@ public class PDType0Font extends PDSimpl
     @Override
     public String encode(byte[] c, int offset, int length) throws IOException
     {
+    	String retval = null;
         if (hasToUnicode())
         {
-            return super.encode(c, offset, length);
+            retval = super.encode(c, offset, length);
         }
-        else
+        
+        if (retval == null)
         {
             int result = cmap.lookupCID(c, offset, length);
             if (result != -1) 
             {
-                return descendantFont.cmapEncoding(result, 2, true, cmap);
+                retval = descendantFont.cmapEncoding(result, 2, true, cmap);
             }
-            return null;
         }
+        return retval;
     }
-    
+
     /**
      * 
      * Provides the descendant font.

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java?rev=1301909&r1=1301908&r2=1301909&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java Sat Mar 17 10:24:08 2012
@@ -118,17 +118,26 @@ public class PDType1CFont extends PDSimp
 
         return character;
     }
-
+    
+    public int encodeToCID( byte[] bytes, int offset, int length )
+    {
+      if (length > 2)
+      {
+          return -1;
+      }
+      int code = bytes[offset] & 0xff;
+      if (length == 2)
+      {
+          code = code * 256 + bytes[offset+1] & 0xff;
+      }
+      return code;
+    }
+    
     private String getCharacter( byte[] bytes, int offset, int length )
     {
-        if (length > 2)
-        {
-            return null;
-        }
-        int code = bytes[offset] & 0xff;
-        if (length == 2)
-        {
-            code = code * 256 + bytes[offset+1] & 0xff;
+        int code = encodeToCID(bytes, offset, length);
+        if (code == -1) {
+        	return null;
         }
         return (String)this.codeToCharacter.get(code);
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java?rev=1301909&r1=1301908&r2=1301909&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java Sat Mar 17 10:24:08 2012
@@ -414,6 +414,16 @@ public class PDType1Font extends PDSimpl
         }
     }
     
+    public int encodeToCID( byte[] c, int offset, int length ) throws IOException {
+      if (type1CFont != null && getFontEncoding() == null)
+      {
+          return type1CFont.encodeToCID(c, offset, length);
+      }
+      else
+      {
+          return super.encodeToCID(c, offset, length);
+      }
+    }
     /**
      * {@inheritDoc}
      */