项目地址:
Pdfium.Net:https://github.com/1000374/Pdfium.Net
PdfiumViewer:https://github.com/1000374/PdfiumViewer
Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--加载字体
接上篇,怎么创建字符子集呢?获取字符集内的字形符号需要引用wpf下PresentationCore.dll,根据比对传入字符和字符集中的字形获取对应的字形字节,从而生成新的字符集,
如需要生成ttf文件,则直接byte[]保存成ttf即可
/// <summary> /// create SubCharacterSet /// </summary> /// <param name="fontPath">font path</param> /// <param name="sourceText"></param> /// <returns></returns> public static byte[] CreateSubSet(this string fontPath, string sourceText) { if (!File.Exists(fontPath)) throw new ArgumentException($"{fontPath} not find"); var glyphTypeface = new GlyphTypeface(new Uri(fontPath, UriKind.RelativeOrAbsolute)); var Index = new List<ushort>(); var sourceTextBytes = Encoding.Unicode.GetBytes(sourceText); var sourceTextChars = Encoding.Unicode.GetChars(sourceTextBytes); for (var charPos = 0; charPos <= (sourceTextChars.Length - 1); charPos++) { var sourceTextCharVal = (int)sourceTextChars[charPos]; var glyphIndex = glyphTypeface.CharacterToGlyphMap[sourceTextCharVal]; if (!Index.Contains(glyphIndex)) Index.Add(glyphIndex); } return glyphTypeface.ComputeSubset(Index); }
标签:--,Pdfium,Free,fontPath,var,new,Net From: https://www.cnblogs.com/xiaohemiao/p/17994849