我有一组文件名不可预测的字体文件,因此我无法从文件名中推断出真正的“字体系列”名称。因此,我需要读取字体元数据以提取真正的“字体系列”名称,以便渲染此字体文件。我使用的是 C#.NET 4.0 WinForms。
我见过这个功能GetFontInformation
但我似乎找不到相同的 P/Invoke 标头。我所拥有的就是C++版本 http://www.codeproject.com/KB/GDI/xfont.aspx老实说,这很难弄清楚。有任何想法吗?
我无法使用的原因PrivateFontCollection
为我解析字体文件的类是这些OTF字体和 .NET/GDI+ 仅支持TTF fonts!
您需要将字体添加到(PrivateFontCollection http://msdn.microsoft.com/en-us/library/system.drawing.text.privatefontcollection.aspx),然后请求FontFamily http://msdn.microsoft.com/en-us/library/system.drawing.fontfamily.aspx并得到它的Name
财产。
private static string GetFontNameFromFile(string filename)
{
PrivateFontCollection fontCollection = new PrivateFontCollection();
fontCollection.AddFontFile("path_to_font");
return fontCollection.Families[0].Name;
}
所需的命名空间:
using System.Drawing;
using System.Drawing.Text;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)