public static CMapCidUni GetCachedCMapCidUni(String name) { CMapCidUni cmap = null; lock (cacheCidUni) { cacheCidUni.TryGetValue(name, out cmap); } if (cmap == null) { cmap = new CMapCidUni(); CMapParserEx.ParseCid(name, cmap, new CidResource()); lock (cacheCidUni) { cacheCidUni[name] = cmap; } } return cmap; }
public static CMapCidUni GetCachedCMapCidUni(String name) { CMapCidUni cmap = null; lock (cacheCidUni) { cacheCidUni.TryGetValue(name, out cmap); } if (cmap == null) { cmap = new CMapCidUni(); CMapParserEx.ParseCid(name, cmap, new CidResource()); lock (cacheCidUni) { cacheCidUni[name] = cmap; } } return(cmap); }
private void InitFont() { ProcessToUnicode(); //if (toUnicodeCmap == null) ProcessUni2Byte(); spaceWidth = base.GetWidth(' '); if (spaceWidth == 0){ spaceWidth = ComputeAverageWidth(); } if (cjkEncoding != null) { byteCid = CMapCache.GetCachedCMapByteCid(cjkEncoding); cidUni = CMapCache.GetCachedCMapCidUni(uniMap); } }
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); } }