/** Creates a new instance of PDFFontDescriptor */ public PDFFontDescriptor(PDFObject obj) throws IOException { // required parameters setAscent(obj.getDictRef("Ascent").getIntValue()); setCapHeight(obj.getDictRef("CapHeight").getIntValue()); setDescent(obj.getDictRef("Descent").getIntValue()); setFlags(obj.getDictRef("Flags").getIntValue()); setFontName(obj.getDictRef("FontName").getStringValue()); setItalicAngle(obj.getDictRef("ItalicAngle").getIntValue()); setStemV(obj.getDictRef("StemV").getIntValue()); // font bounding box PDFObject[] bboxdef = obj.getDictRef("FontBBox").getArray(); float[] bboxfdef = new float[4]; for (int i = 0; i < 4; i++) { bboxfdef[i] = bboxdef[i].getFloatValue(); } setFontBBox( new Rectangle2D.Float( bboxfdef[0], bboxfdef[1], bboxfdef[2] - bboxfdef[0], bboxfdef[3] - bboxfdef[1])); // optional parameters if (obj.getDictionary().containsKey("AvgWidth")) { setAvgWidth(obj.getDictRef("AvgWidth").getIntValue()); } if (obj.getDictionary().containsKey("FontFile")) { setFontFile(obj.getDictRef("FontFile")); } if (obj.getDictionary().containsKey("FontFile2")) { setFontFile2(obj.getDictRef("FontFile2")); } if (obj.getDictionary().containsKey("FontFile3")) { setFontFile3(obj.getDictRef("FontFile3")); } if (obj.getDictionary().containsKey("Leading")) { setLeading(obj.getDictRef("Leading").getIntValue()); } if (obj.getDictionary().containsKey("MaxWidth")) { setMaxWidth(obj.getDictRef("MaxWidth").getIntValue()); } if (obj.getDictionary().containsKey("MissingWidth")) { setMissingWidth(obj.getDictRef("MissingWidth").getIntValue()); } if (obj.getDictionary().containsKey("StemH")) { setStemH(obj.getDictRef("StemH").getIntValue()); } if (obj.getDictionary().containsKey("XHeight")) { setXHeight(obj.getDictRef("XHeight").getIntValue()); } if (obj.getDictionary().containsKey("CharSet")) { setCharSet(obj.getDictRef("CharSet")); } if (obj.getDictionary().containsKey("FontFamily")) { setFontFamily(obj.getDictRef("FontFamily").getStringValue()); } if (obj.getDictionary().containsKey("FontWeight")) { setFontWeight(obj.getDictRef("FontWeight").getIntValue()); } if (obj.getDictionary().containsKey("FontStretch")) { setFontStretch(obj.getDictRef("FontStretch").getStringValue()); } }