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 2016/02/26 19:31:45 UTC

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

Author: lehmi
Date: Fri Feb 26 18:31:45 2016
New Revision: 1732533

URL: http://svn.apache.org/viewvc?rev=1732533&view=rev
Log:
PDFBOX-3250: fix name record parser as proposed by Vladimir Dubrov

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=1732533&r1=1732532&r2=1732533&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 Fri Feb 26 18:31:45 2016
@@ -57,6 +57,7 @@ public class NamingTable extends TTFTabl
      * @param data The stream to read the data from.
      * @throws IOException If there is an error reading the data.
      */
+    @Override
     public void read(TrueTypeFont ttf, TTFDataStream data) throws IOException
     {
         int formatSelector = data.readUnsignedShort();
@@ -83,11 +84,15 @@ public class NamingTable extends TTFTabl
             int platform = nr.getPlatformId();
             int encoding = nr.getPlatformEncodingId();
             Charset charset = Charsets.ISO_8859_1;
-            if (platform == 3 && (encoding == 1 || encoding == 0))
+            if (platform == NameRecord.PLATFORM_WINDOWS && (encoding == NameRecord.ENCODING_WINDOWS_SYMBOL || encoding == NameRecord.ENCODING_WINDOWS_UNICODE_BMP))
             {
                 charset = Charsets.UTF_16;
             }
-            else if (platform == 2)
+            else if (platform == NameRecord.PLATFORM_UNICODE)
+            {
+                charset = Charsets.UTF_16;
+            }
+            else if (platform == NameRecord.PLATFORM_ISO)
             {
                 if (encoding == 0)
                 {
@@ -162,7 +167,7 @@ public class NamingTable extends TTFTabl
     private String getEnglishName(int nameId)
     {
         // Unicode, Full, BMP, 1.1, 1.0
-        for (int i = 4; i <= 0; i--)
+        for (int i = 4; i >= 0; i--)
         {
             String nameUni =
                     getName(nameId,