Skip to content

Commit 49bdecf

Browse files
authored
GH-414 handle descentant font being a fontDescriptor (#415)
1 parent d0ac509 commit 49bdecf

File tree

1 file changed

+10
-2
lines changed
  • core/core-awt/src/main/java/org/icepdf/core/pobjects/fonts/zfont

1 file changed

+10
-2
lines changed

core/core-awt/src/main/java/org/icepdf/core/pobjects/fonts/zfont/Type0Font.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.icepdf.core.pobjects.Name;
55
import org.icepdf.core.pobjects.Reference;
66
import org.icepdf.core.pobjects.Stream;
7+
import org.icepdf.core.pobjects.fonts.FontDescriptor;
78
import org.icepdf.core.pobjects.fonts.zfont.cmap.CMap;
89
import org.icepdf.core.util.Library;
910

@@ -73,10 +74,17 @@ private void parseDescendantFont() {
7374
Object descendantFontObject = descendantFonts.get(0);
7475
if (descendantFontObject instanceof Reference) {
7576
Reference descendantFontReference = (Reference) descendantFontObject;
76-
descendantFont = (CompositeFont) library.getObject(descendantFontReference);
77-
} else if (descendantFontObject instanceof CompositeFont) {
77+
descendantFontObject = library.getObject(descendantFontReference);
78+
}
79+
80+
if (descendantFontObject instanceof CompositeFont) {
7881
descendantFont = (CompositeFont) descendantFontObject;
7982
}
83+
// strange malformed PDFe where the descendant font is a font descriptor,
84+
else if (descendantFontObject instanceof FontDescriptor) {
85+
fontDescriptor = (FontDescriptor) descendantFontObject;
86+
parseFontDescriptor();
87+
}
8088

8189
if (descendantFont != null) {
8290
descendantFont.init();

0 commit comments

Comments
 (0)