@Override protected PdfDictionary getFontDescriptor(String fontName) { PdfDictionary fontDescriptor = new PdfDictionary(); makeObjectIndirect(fontDescriptor); fontDescriptor.put(PdfName.Type, PdfName.FontDescriptor); fontDescriptor.put(PdfName.FontName, new PdfName(fontName)); fontDescriptor.put(PdfName.FontBBox, new PdfArray(getFontProgram().getFontMetrics().getBbox())); fontDescriptor.put(PdfName.Ascent, new PdfNumber(getFontProgram().getFontMetrics().getTypoAscender())); fontDescriptor.put(PdfName.Descent, new PdfNumber(getFontProgram().getFontMetrics().getTypoDescender())); fontDescriptor.put(PdfName.CapHeight, new PdfNumber(getFontProgram().getFontMetrics().getCapHeight())); fontDescriptor.put(PdfName.ItalicAngle, new PdfNumber(getFontProgram().getFontMetrics().getItalicAngle())); fontDescriptor.put(PdfName.StemV, new PdfNumber(getFontProgram().getFontMetrics().getStemV())); fontDescriptor.put(PdfName.Flags, new PdfNumber(getFontProgram().getPdfFontFlags())); if (fontProgram.getFontIdentification().getPanose() != null) { PdfDictionary styleDictionary = new PdfDictionary(); styleDictionary.put(PdfName.Panose, new PdfString(fontProgram.getFontIdentification().getPanose()).setHexWriting(true)); fontDescriptor.put(PdfName.Style, styleDictionary); } return fontDescriptor; }