You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/08/28 09:42:02 UTC

svn commit: r1621080 - in /pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font: FileSystemFontProvider.java PDCIDFontType2.java PDTrueTypeFont.java

Author: jahewson
Date: Thu Aug 28 07:42:02 2014
New Revision: 1621080

URL: http://svn.apache.org/r1621080
Log:
PDFBOX-2262: Better logging for TTF errors

Modified:
    pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java
    pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
    pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java

Modified: pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java?rev=1621080&r1=1621079&r2=1621080&view=diff
==============================================================================
--- pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java (original)
+++ pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java Thu Aug 28 07:42:02 2014
@@ -102,7 +102,21 @@ final class FileSystemFontProvider imple
     private void addOpenTypeFont(File otfFile) throws IOException
     {
         TTFParser ttfParser = new TTFParser(false, true);
-        TrueTypeFont ttf = ttfParser.parseTTF(otfFile);
+        TrueTypeFont ttf = null;
+        try
+        {
+            System.out.println(otfFile);
+            ttf = ttfParser.parseTTF(otfFile);
+        }
+        catch (NullPointerException e) // TTF parser is buggy
+        {
+            LOG.error("Could not load font file: " + otfFile, e);
+        }
+        catch (IOException e)
+        {
+            LOG.error("Could not load font file: " + otfFile, e);
+        }
+
         try
         {
             // check for 'name' table
@@ -144,7 +158,10 @@ final class FileSystemFontProvider imple
         }
         finally
         {
-            ttf.close();
+            if (ttf != null)
+            {
+                ttf.close();
+            }
         }
     }
 
@@ -197,9 +214,13 @@ final class FileSystemFontProvider imple
                 }
                 return ttf;
             }
+            catch (NullPointerException e) // TTF parser is buggy
+            {
+                LOG.error("Could not load font file: " + file, e);
+            }
             catch (IOException e)
             {
-                LOG.error("Could not load font file: " + file);
+                LOG.error("Could not load font file: " + file, e);
             }
         }
         return null;
@@ -233,7 +254,7 @@ final class FileSystemFontProvider imple
             }
             catch (IOException e)
             {
-                LOG.error("Could not load font file: " + file);
+                LOG.error("Could not load font file: " + file, e);
             }
             finally
             {
@@ -269,7 +290,7 @@ final class FileSystemFontProvider imple
             }
             catch (IOException e)
             {
-                LOG.error("Could not load font file: " + file);
+                LOG.error("Could not load font file: " + file, e);
             }
             finally
             {

Modified: pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1621080&r1=1621079&r2=1621080&view=diff
==============================================================================
--- pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java (original)
+++ pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java Thu Aug 28 07:42:02 2014
@@ -65,10 +65,21 @@ public class PDCIDFontType2 extends PDCI
 
         if (ff2Stream != null)
         {
-            // embedded
-            TTFParser ttfParser = new TTFParser(true);
-            ttf = ttfParser.parseTTF(ff2Stream.createInputStream());
-            isEmbedded = true;
+            try
+            {
+                // embedded
+                TTFParser ttfParser = new TTFParser(true);
+                ttf = ttfParser.parseTTF(ff2Stream.createInputStream());
+                isEmbedded = true;
+            }
+            catch (NullPointerException e) // TTF parser is buggy
+            {
+                throw new IOException("Could not read embedded TTF for font " + getBaseFont(), e);
+            }
+            catch (IOException e)
+            {
+                throw new IOException("Could not read embedded TTF for font " + getBaseFont(), e);
+            }
         }
         else
         {

Modified: pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1621080&r1=1621079&r2=1621080&view=diff
==============================================================================
--- pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java (original)
+++ pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java Thu Aug 28 07:42:02 2014
@@ -99,9 +99,20 @@ public class PDTrueTypeFont extends PDSi
             PDStream ff2Stream = fd.getFontFile2();
             if (ff2Stream != null)
             {
-                // embedded
-                TTFParser ttfParser = new TTFParser(true);
-                ttfFont = ttfParser.parseTTF(ff2Stream.createInputStream());
+                try
+                {
+                    // embedded
+                    TTFParser ttfParser = new TTFParser(true);
+                    ttfFont = ttfParser.parseTTF(ff2Stream.createInputStream());
+                }
+                catch (NullPointerException e) // TTF parser is buggy
+                {
+                    throw new IOException("Could not read embedded TTF for font " + getBaseFont(), e);
+                }
+                catch (IOException e)
+                {
+                    throw new IOException("Could not read embedded TTF for font " + getBaseFont(), e);
+                }
             }
         }
         isEmbedded = ttfFont != null;