private PdfDictionary GetCIDFont(PdfIndirectReference fontDescriptor, IntHashtable cjkTag)
{
PdfDictionary dic = new PdfDictionary(PdfName.FONT);
dic.Put(PdfName.SUBTYPE, PdfName.CIDFONTTYPE0);
dic.Put(PdfName.BASEFONT, new PdfName(fontName + style));
dic.Put(PdfName.FONTDESCRIPTOR, fontDescriptor);
int[] keys = cjkTag.ToOrderedKeys();
string w = ConvertToHCIDMetrics(keys, hMetrics);
if (w != null)
dic.Put(PdfName.W, new PdfLiteral(w));
if (vertical) {
w = ConvertToVCIDMetrics(keys, vMetrics, hMetrics);
if (w != null)
dic.Put(PdfName.W2, new PdfLiteral(w));
}
else
dic.Put(PdfName.DW, new PdfNumber(1000));
PdfDictionary cdic = new PdfDictionary();
if (cidDirect) {
cdic.Put(PdfName.REGISTRY, new PdfString(cidUni.Registry, null));
cdic.Put(PdfName.ORDERING, new PdfString(cidUni.Ordering, null));
cdic.Put(PdfName.SUPPLEMENT, new PdfNumber(cidUni.Supplement));
}
else {
cdic.Put(PdfName.REGISTRY, new PdfString(cidByte.Registry, null));
cdic.Put(PdfName.ORDERING, new PdfString(cidByte.Ordering, null));
cdic.Put(PdfName.SUPPLEMENT, new PdfNumber(cidByte.Supplement));
}
dic.Put(PdfName.CIDSYSTEMINFO, cdic);
return dic;
}