Author: tilman
Date: Tue Apr 22 17:18:08 2014
New Revision: 1589213

URL: http://svn.apache.org/r1589213
Log:
PDFBOX-1069: better error message if PDFBOX standard font doesn't exist; 
improve existing "for" loop

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

Modified: 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontManager.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontManager.java?rev=1589213&r1=1589212&r2=1589213&view=diff
==============================================================================
--- 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontManager.java
 (original)
+++ 
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontManager.java
 Tue Apr 22 17:18:08 2014
@@ -16,10 +16,14 @@
  */
 package org.apache.pdfbox.pdmodel.font;
 
+import java.awt.Font;
+import java.awt.GraphicsEnvironment;
 import java.io.IOException;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Properties;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 import org.apache.pdfbox.util.ResourceLoader;
 
@@ -31,6 +35,10 @@ import org.apache.pdfbox.util.ResourceLo
 
 public class FontManager 
 {
+    /**
+     * Log instance.
+     */
+    private static final Log LOG = LogFactory.getLog(FontManager.class);
 
     // HashMap with all known fonts
     private static HashMap<String,java.awt.Font> envFonts = new 
HashMap<String,java.awt.Font>();
@@ -58,6 +66,7 @@ public class FontManager 
     private FontManager() 
     {
     }
+    
     /**
      * Get the standard font from the environment, usually Arial or Times New 
Roman. 
      *
@@ -66,7 +75,18 @@ public class FontManager 
      */
     public static java.awt.Font getStandardFont() 
     {
-        return getAwtFont(standardFont);
+        Font awtFont = getAwtFont(standardFont);
+        if (awtFont == null)
+        {
+            // PDFBOX-1069
+            LOG.error("Standard font '" + standardFont + "' is not part of the 
environment");
+            LOG.error("Available fonts:");
+            for (Font font : 
GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts())
+            {
+                LOG.error("\t" + font.getFontName());
+    }
+        }
+        return awtFont;
     }
     
     /**
@@ -92,11 +112,8 @@ public class FontManager 
      */
     private static void loadFonts() 
     {
-        java.awt.Font[] allFonts = 
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
-        int numberOfFonts = allFonts.length;
-        for (int i=0;i<numberOfFonts;i++) 
+        for (Font font : 
GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts())
         {
-            java.awt.Font font = allFonts[i];
             String family = normalizeFontname(font.getFamily());
             String psname = normalizeFontname(font.getPSName());
             if (isBoldItalic(font)) 


Reply via email to