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/05/26 20:55:49 UTC

svn commit: r1597628 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java

Author: lehmi
Date: Mon May 26 18:55:49 2014
New Revision: 1597628

URL: http://svn.apache.org/r1597628
Log:
PDFBOX-1689: use platfrom/encoding 1,0 as fallback

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java?rev=1597628&r1=1597627&r2=1597628&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java Mon May 26 18:55:49 2014
@@ -66,9 +66,12 @@ public class NamingTable extends TTFTabl
             int platform = nr.getPlatformId();
             int encoding = nr.getPlatformEncodingId();
             String charset = "ISO-8859-1";
+            boolean isPlatform310 = false;
+            boolean isPlatform10 = false;
             if( platform == 3 && (encoding == 1 || encoding == 0) )
             {
                 charset = "UTF-16";
+                isPlatform310 = true;
             }
             else if( platform == 2 )
             {
@@ -86,24 +89,37 @@ public class NamingTable extends TTFTabl
                     charset = "ISO-8859-1";
                 }
             }
+            else if ( platform == 1 && encoding == 0)
+            {
+                isPlatform10 = true;
+            }
             String string = data.readString( nr.getStringLength(), charset );
             nr.setString( string );
-            if( platform == 3 && (encoding == 1 || encoding == 0) )
+            int nameID = nr.getNameId();
+            if (nameID == NameRecord.NAME_FONT_FAMILY_NAME)
             {
-                int nameID = nr.getNameId();
-                if (nameID == NameRecord.NAME_FONT_FAMILY_NAME && fontFamily == null )
+                // prefer 3,1 or 3,0 platform/encoding use 1,0 as fallback
+                if (isPlatform310 || (isPlatform10 && fontFamily == null))
                 {
                     fontFamily = string;
                 }
-                if (NameRecord.NAME_FONT_SUB_FAMILY_NAME == nameID && fontSubFamily == null)
+            }            
+            else if (nameID == NameRecord.NAME_FONT_SUB_FAMILY_NAME)
+            {
+                // prefer 3,1 or 3,0 platform/encoding use 1,0 as fallback
+                if (isPlatform310 || (isPlatform10 && fontSubFamily == null))
                 {
                     fontSubFamily = string;
                 }
-                if ( nameID == NameRecord.NAME_POSTSCRIPT_NAME && psName == null )
+            }            
+            else if (nameID == NameRecord.NAME_POSTSCRIPT_NAME)
+            {
+                // prefer 3,1 or 3,0 platform/encoding use 1,0 as fallback
+                if (isPlatform310 || (isPlatform10 && psName == null))
                 {
                     psName = string;
                 }
-            }
+            }            
         }
         initialized = true;
     }