我可以在C#中阅读和预览字体(主要是ttf和otf)吗?我可以/应该使用哪些其他语言?
阅读:
预览:
答案 0 :(得分:10)
警告:如果要预览OTF字体,请不要使用System.Drawing / System.Windows.Forms。除非他们是伪装的TTF,否则你不会让他们表现出来。 System.Drawing,基于GDI +,只支持TTF字体!
但是,如果您可以使用.NET 3.0,则可以使用
Fonts.GetFontFamilies(location)
来自 System.Windows.Media 命名空间(仅引用PresentationCore.dll)。
从 FontFamily ,您可以获得单个字体(.ttc文件包含多个'font',但 FontFamily 还结合了各种重量和变体)。从字体,您可以调用 TryGetGlyphTypeface 来获取 GlyphTypeface ,它具有 CharacterToGlyphMap 属性,该属性应该是告诉你物理上支持哪些unicode代码点。
似乎也可以直接使用 GlyphTypeface ,但我认为你无法处理.ttc文件。但是,如果这不相关,只需为每个文件创建一个GlyphTypeface。
我建议不要按顺序尝试所有Unicode代码点。
答案 1 :(得分:0)
要预览字体,您可以将其渲染为如下形式:
public partial class MyForm: Form
{
.
.
.
public void ShowMyFont()
{
Graphics graphics = this.CreateGraphics();
graphics.DrawString("Hello world!", new Font("Arial", 12), Brushes.Black, 0, 0);
}
}