@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;
}