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