访问OTF字体

Mic*_*l Z 8 c# fonts truetype

我尝试在我的系统上安装OTF字体但是我失败了:

FontFamily family = new FontFamily(name_for_my_font);
Run Code Online (Sandbox Code Playgroud)

我试图在系统中列出我的所有字体,实际上我还没有看到所需的字体:

foreach (FontFamily font in System.Drawing.FontFamily.Families)
{
Console.WriteLine(font);
}
Run Code Online (Sandbox Code Playgroud)

但我可以在Fonts文件夹中看到我的字体.它有OTF扩展.也许这就是问题?我只能看到TTF字体.但为什么?如何从我的程序中访问OTF字体?

更新:抱歉问题是OTF访问但不是TTF!我在答案中做了更正

Mar*_*age 9

问题是OpenType字体有多种形式,一种基于TrueType轮廓,另一种基于PostScript Type 1轮廓.Windows GDI +图形API不支持PostScript类型1轮廓.这具有讽刺意味,因为OpenType字体格式是由Microsoft无法从Apple许可某些字体技术而创建的.

因此,如果Windows应用程序基于GDI +,则无法呈现具有PostScript类型1轮廓或PostScript类型1字体的OpenType字体.不幸的System.Drawing是使用GDI +实现.您唯一的选择是使用TrueType轮廓坚持使用字体.

(或者,如果你真的绝望,你可以P/Invoke到"经典"GDI并将字体渲染成位图.)