code: private PdfDictionary getFontDescriptor(PdfIndirectReference fontStream)
      {
          if (builtinFont)
              return null;
          PdfDictionary dic = new PdfDictionary(PdfName.FONTDESCRIPTOR);
          dic.put(PdfName.ASCENT, new PdfNumber(Ascender));
          dic.put(PdfName.CAPHEIGHT, new PdfNumber(CapHeight));
          dic.put(PdfName.DESCENT, new PdfNumber(Descender));
          dic.put(PdfName.FONTBBOX, new PdfRectangle(llx, lly, urx, ury));
          dic.put(PdfName.FONTNAME, new PdfName(FontName));
          dic.put(PdfName.ITALICANGLE, new PdfNumber(ItalicAngle));
          dic.put(PdfName.STEMV, new PdfNumber(StdVW));
          if (fontStream != null)
              dic.put(PdfName.FONTFILE, fontStream);
          int flags = 0;
          if (IsFixedPitch)
              flags |= 1;
          flags |= fontSpecific ? 4 : 32;
          if (ItalicAngle < 0)
              flags |= 64;
          if (FontName.indexOf("Caps") >= 0 || FontName.endsWith("SC"))
              flags |= 131072;
          if (Weight.equals("Bold"))
              flags |= 262144;
          dic.put(PdfName.FLAGS, new PdfNumber(flags));
          
          return dic;
      }
docs: Generates the font descriptor for this font or <CODE>null</CODE> if it is
  one of the 14 built in fonts.
  @param fontStream the indirect reference to a PdfStream containing the font or <CODE>null</CODE>
  @return the PdfDictionary containing the font descriptor or <CODE>null</CODE>