【问题标题】:C# - Read & Preview FontC# - 阅读和预览字体
【发布时间】:2010-11-14 07:19:49
【问题描述】:

我可以在 C# 中阅读和预览字体(主要是 ttf 和 otf)吗?我可以/应该使用哪些其他语言?

阅读:

  • 字体系列、字体名称等信息

预览:

  • 使用字体显示一些文字
  • 有什么方法可以显示所有支持的字体字符?

【问题讨论】:

    标签: c# fonts


    【解决方案1】:

    注意:如果要预览 OTF 字体,请勿使用 System.Drawing / System.Windows.Forms。除非他们是 TTF 的伪装,否则你不会让他们出现。 System.Drawing,基于GDI+,只支持TTF字体!

    但是,如果您可以使用 .NET 3.0,则可以使用

    Fonts.GetFontFamilies(location)
    

    来自 System.Windows.Media 命名空间(仅引用 PresentationCore.dll)。

    FontFamily,您可以获得单独的字体(.ttc 文件包含多个“字体”,但FontFamily还结合了各种权重和变体)。从 Typeface,您可以调用 TryGetGlyphTypeface 来获取 GlyphTypeface,它有一个 CharacterToGlyphMap 属性,它应该告诉您物理上支持哪些 unicode 代码点。

    似乎也可以直接使用 GlyphTypeface,但我认为您无法处理 .ttc 文件。但是,如果这不相关,只需为每个文件创建一个 GlyphTypeface。

    我建议不要按顺序尝试所有 Unicode 代码点。

    【讨论】:

    • 谢谢。我会调查的。它更像是一个个人项目,所以我可以使用任何框架。我更喜欢最新的
    • 你说 ttc 的意思是 ttf 吗?
    • 不,.ttc 文件是所谓的 TrueType 集合文件。它们在一个文件中包含多种字体。例如 Cambria.ttc,其中包含 Cambria Regular 和 Cambria Regular Math。
    • 哦,字体应该使用它......拥有单独的 ttf 文件似乎只会增加我看到的字体数量。我认为即使在 1 个文件中包含 20 种字体也不会过多地增加文件大小或速度......只是我的 2 美分
    【解决方案2】:

    要预览字体,您可以将其呈现为如下形式:

    public partial class MyForm: Form
    {
       .
       .
       .
       public void ShowMyFont()
       {
          Graphics graphics = this.CreateGraphics();
          graphics.DrawString("Hello world!", new Font("Arial", 12), Brushes.Black, 0, 0);
       }
    }
    

    【讨论】:

    • 我相信原始海报意味着预览未安装的字体 - 即。来自文件。
    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    相关资源
    最近更新 更多