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/12/22 16:51:57 UTC

svn commit: r1425301 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java

Author: lehmi
Date: Sat Dec 22 15:51:56 2012
New Revision: 1425301

URL: http://svn.apache.org/viewvc?rev=1425301&view=rev
Log:
PDFBOX-1473: choose the correct font if more than one is provided as proposed by Juraj Lonc

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

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=1425301&r1=1425300&r2=1425301&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 Dec 22 15:51:56 2012
@@ -321,7 +321,22 @@ public class PDType1CFont extends PDSimp
         CFFParser cffParser = new CFFParser();
         List<CFFFont> fonts = cffParser.parse(cffBytes);
 
-        this.cffFont = (CFFFont)fonts.get(0);
+        String baseFontName = getBaseFont();
+        if (fonts.size() > 1 && baseFontName != null)
+        {
+            for (CFFFont font: fonts) 
+            {
+                if (baseFontName.equals(font.getName())) 
+                {
+                    this.cffFont = font;
+                    break;
+                }
+            }
+        }
+        if (this.cffFont == null) 
+        {
+            this.cffFont = (CFFFont)fonts.get(0);
+        }
 
         CFFEncoding encoding = this.cffFont.getEncoding();
         PDFEncoding pdfEncoding = new PDFEncoding(encoding);
@@ -358,13 +373,13 @@ public class PDType1CFont extends PDSimp
             }
         }
 
-        Map nameToCharacter;
+        Map<String,String> nameToCharacter;
         try
         {
             // TODO remove access by reflection
             Field nameToCharacterField = Encoding.class.getDeclaredField("NAME_TO_CHARACTER");
             nameToCharacterField.setAccessible(true);
-            nameToCharacter = (Map)nameToCharacterField.get(null);
+            nameToCharacter = (Map<String,String>)nameToCharacterField.get(null);
         }
         catch( Exception e )
         {