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.