public PdfDictionary GetFontDescriptor(PdfIndirectReference fontStream, string subsetPrefix, PdfIndirectReference cidset)
{
PdfDictionary dic = new PdfDictionary(PdfName.FONTDESCRIPTOR);
dic.Put(PdfName.ASCENT, new PdfNumber((int)os_2.sTypoAscender * 1000 / head.unitsPerEm));
dic.Put(PdfName.CAPHEIGHT, new PdfNumber((int)os_2.sCapHeight * 1000 / head.unitsPerEm));
dic.Put(PdfName.DESCENT, new PdfNumber((int)os_2.sTypoDescender * 1000 / head.unitsPerEm));
dic.Put(PdfName.FONTBBOX, new PdfRectangle(
(int)head.xMin * 1000 / head.unitsPerEm,
(int)head.yMin * 1000 / head.unitsPerEm,
(int)head.xMax * 1000 / head.unitsPerEm,
(int)head.yMax * 1000 / head.unitsPerEm));
if (cidset != null)
dic.Put(PdfName.CIDSET, cidset);
if (cff) {
if (encoding.StartsWith("Identity-"))
dic.Put(PdfName.FONTNAME, new PdfName(subsetPrefix + fontName+"-"+encoding));
else
dic.Put(PdfName.FONTNAME, new PdfName(subsetPrefix + fontName + style));
}
else
dic.Put(PdfName.FONTNAME, new PdfName(subsetPrefix + fontName + style));
dic.Put(PdfName.ITALICANGLE, new PdfNumber(italicAngle));
dic.Put(PdfName.STEMV, new PdfNumber(80));
if (fontStream != null) {
if (cff)
dic.Put(PdfName.FONTFILE3, fontStream);
else
dic.Put(PdfName.FONTFILE2, fontStream);
}
int flags = 0;
if (isFixedPitch)
flags |= 1;
flags |= fontSpecific ? 4 : 32;
if ((head.macStyle & 2) != 0)
flags |= 64;
if ((head.macStyle & 1) != 0)
flags |= 262144;
dic.Put(PdfName.FLAGS, new PdfNumber(flags));
return dic;
}