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 )
         {


Reply via email to