internal static CMapToUnicode GetToUnicodeFromUniMap(String uniMap) { if (uniMap == null) { return(null); } lock (uniMaps) { if (uniMaps.Contains(uniMap)) { return(uniMaps.Get(uniMap)); } CMapToUnicode toUnicode; if (PdfEncodings.IDENTITY_H.Equals(uniMap)) { toUnicode = CMapToUnicode.GetIdentity(); } else { CMapUniCid uni = FontCache.GetUni2CidCmap(uniMap); if (uni == null) { return(null); } toUnicode = uni.ExportToUnicode(); } uniMaps[uniMap] = toUnicode; return(toUnicode); } }
private void LoadCMaps() { try { fontDesc = allFonts[fontName]; hMetrics = (IntHashtable)fontDesc["W"]; vMetrics = (IntHashtable)fontDesc["W2"]; String registry = (String)fontDesc["Registry"]; uniMap = ""; foreach (String name in registryNames[registry + "_Uni"].Keys) { uniMap = name; if (name.EndsWith("V") && vertical) { break; } if (!name.EndsWith("V") && !vertical) { break; } } if (cidDirect) { cidUni = CMapCache.GetCachedCMapCidUni(uniMap); } else { uniCid = CMapCache.GetCachedCMapUniCid(uniMap); cidByte = CMapCache.GetCachedCMapCidByte(CMap); } } catch (Exception ex) { throw new DocumentException(ex.Message); } }
public static CMapUniCid GetUni2CidCmap(String uniMap) { CMapUniCid uniCid = new CMapUniCid(); return(ParseCmap(uniMap, uniCid)); }