Author: lehmi
Date: Thu Dec 27 14:31:37 2012
New Revision: 1426212

URL: http://svn.apache.org/viewvc?rev=1426212&view=rev
Log:
PDFBOX-1481: ignore optional postscript code when extracting the encoding of a 
type1 font

Modified:
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java?rev=1426212&r1=1426211&r2=1426212&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
 Thu Dec 27 14:31:37 2012
@@ -341,12 +341,27 @@ public class PDType1Font extends PDSimpl
                                 StringTokenizer st = new 
StringTokenizer(line.replaceAll("/"," /"));
                                 // ignore the first token
                                 st.nextElement();
-                                int index = Integer.parseInt(st.nextToken());
-                                String name = st.nextToken();
-                                if(encoding == null)
-                                    log.warn("Unable to get character 
encoding.  Encoding defintion found without /Encoding line.");
-                                else
-                                    encoding.addCharacterEncoding(index, 
name.replace("/", ""));
+                                try
+                                {
+                                    int index = 
Integer.parseInt(st.nextToken());
+                                    String name = st.nextToken();
+                                    if(encoding == null)
+                                    {
+                                        log.warn("Unable to get character 
encoding. Encoding defintion found without /Encoding line.");
+                                    }
+                                    else
+                                    {
+                                        encoding.addCharacterEncoding(index, 
name.replace("/", ""));
+                                    }
+                                }
+                                catch(NumberFormatException exception)
+                                {
+                                    // there are (tex?)-some fonts containing 
postscript code like the following, 
+                                    // which has to be ignored, see PDFBOX-1481
+                                    // dup dup 161 10 getinterval 0 exch 
putinterval ....
+                                    log.debug("Malformed encoding definition 
ignored (line="+line+")");
+                                }
+                                continue;
                             }
                         }
                         // according to the pdf reference, all font matrices 
should be same, except for type 3 fonts.


Reply via email to