Skip to content

Commit 4537957

Browse files
committed
PdfType3Font: box handling
1 parent 51535f6 commit 4537957

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

kernel/src/main/java/com/itextpdf/kernel/font/PdfType3Font.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,15 @@ public class PdfType3Font extends PdfSimpleFont<Type3FontProgram> {
4848
embedded = true;
4949
fontProgram = new Type3FontProgram(false);
5050
fontEncoding = DocFontEncoding.createDocFontEncoding(fontDictionary.get(PdfName.Encoding), null, false);
51-
Rectangle fontBBoxRec = getPdfObject().getAsArray(PdfName.FontBBox).toRectangle();
5251
PdfDictionary charProcsDic = getPdfObject().getAsDictionary(PdfName.CharProcs);
5352
PdfArray fontMatrixArray = getPdfObject().getAsArray(PdfName.FontMatrix);
54-
fontProgram.getFontMetrics().setBbox((int) fontBBoxRec.getLeft(), (int) fontBBoxRec.getBottom(),
55-
(int) fontBBoxRec.getRight(), (int) fontBBoxRec.getTop());
53+
if (getPdfObject().containsKey(PdfName.FontBBox)) {
54+
PdfArray fontBBox = getPdfObject().getAsArray(PdfName.FontBBox);
55+
fontProgram.getFontMetrics().setBbox(fontBBox.getAsInt(0), fontBBox.getAsInt(1),
56+
fontBBox.getAsInt(2), fontBBox.getAsInt(3));
57+
} else {
58+
fontProgram.getFontMetrics().setBbox(0, 0, 0, 0);
59+
}
5660
PdfNumber firstCharNumber = fontDictionary.getAsNumber(PdfName.FirstChar);
5761
int firstChar = firstCharNumber != null ? Math.max(firstCharNumber.getIntValue(), 0) : 0;
5862
int[] widths = FontUtils.convertSimpleWidthsArray(fontDictionary.getAsArray(PdfName.Widths), firstChar);

0 commit comments

Comments
 (0)