You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/06/23 21:36:03 UTC

svn commit: r1604916 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java

Author: jahewson
Date: Mon Jun 23 19:36:03 2014
New Revision: 1604916

URL: http://svn.apache.org/r1604916
Log:
PDFBOX-2149: Fix loading of TTF cmap with .notdef

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1604916&r1=1604915&r2=1604916&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java Mon Jun 23 19:36:03 2014
@@ -321,19 +321,22 @@ public class PDTrueTypeFont extends PDFo
         {
             String name = e.getValue();
             // pdf code to unicode by glyph list.
-            String c = glyphlist.getCharacter(name);
-            int charCode = c.codePointAt(0);
-            int gid = uniMap.getGlyphId(charCode);
-            if (gid != 0)
+            if (!name.equals(".notdef"))
             {
-                if (isMonospaced)
+                String c = glyphlist.getCharacter(name);
+                int charCode = c.codePointAt(0);
+                int gid = uniMap.getGlyphId(charCode);
+                if (gid != 0)
                 {
-                    widths.set(e.getKey() - firstChar, defaultWidth);
-                }
-                else
-                {
-                    widths.set(e.getKey() - firstChar,
-                               Math.round(widthValues[gid] * scaling));
+                    if (isMonospaced)
+                    {
+                        widths.set(e.getKey() - firstChar, defaultWidth);
+                    }
+                    else
+                    {
+                        widths.set(e.getKey() - firstChar,
+                                Math.round(widthValues[gid] * scaling));
+                    }
                 }
             }
         }