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 2014/05/27 21:12:17 UTC

svn commit: r1597852 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java

Author: lehmi
Date: Tue May 27 19:12:17 2014
New Revision: 1597852

URL: http://svn.apache.org/r1597852
Log:
PDFBOX-1689: use the new font manager to search for an external font first

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

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1597852&r1=1597851&r2=1597852&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java Tue May 27 19:12:17 2014
@@ -563,25 +563,32 @@ public class PDTrueTypeFont extends PDSi
         if ( fd != null )
         {
             String baseFont = getBaseFont();
-            String fontResource = externalFonts.getProperty( UNKNOWN_FONT );
-            if( (baseFont != null) &&
-                 (externalFonts.containsKey(baseFont)) )
+            // search for a suitable font in the local environment
+            retval = org.apache.fontbox.util.FontManager.findTTFont(baseFont);
+            // can't find any font, use fall back mapping
+            // NOTE: this fall back mechanism will be removed with PDFBox 2.0.0
+            if (retval == null)
             {
-                fontResource = externalFonts.getProperty(baseFont);
-            }
-            if( fontResource != null )
-            {
-                retval = (TrueTypeFont)loadedExternalFonts.get( baseFont );
-                if( retval == null )
+                String fontResource = externalFonts.getProperty( UNKNOWN_FONT );
+                if( (baseFont != null) &&
+                     (externalFonts.containsKey(baseFont)) )
+                {
+                    fontResource = externalFonts.getProperty(baseFont);
+                }
+                if( fontResource != null )
                 {
-                    TTFParser ttfParser = new TTFParser();
-                    InputStream fontStream = ResourceLoader.loadResource( fontResource );
-                    if( fontStream == null )
+                    retval = (TrueTypeFont)loadedExternalFonts.get( baseFont );
+                    if( retval == null )
                     {
-                        throw new IOException( "Error missing font resource '" + externalFonts.get(baseFont) + "'" );
+                        TTFParser ttfParser = new TTFParser();
+                        InputStream fontStream = ResourceLoader.loadResource( fontResource );
+                        if( fontStream == null )
+                        {
+                            throw new IOException( "Error missing font resource '" + externalFonts.get(baseFont) + "'" );
+                        }
+                        retval = ttfParser.parseTTF( fontStream );
+                        loadedExternalFonts.put( baseFont, retval );
                     }
-                    retval = ttfParser.parseTTF( fontStream );
-                    loadedExternalFonts.put( baseFont, retval );
                 }
             }
         }