none
一个日文字体文件的解析问题 RRS feed

  • 问题

  • 因为程序需要解析字体文件的信息,但是碰到一个奇怪的日文字体,下载地址:   https://pan.baidu.com/s/1EjJ2Vq6EMMo0kX7PfN19hQ

    这个字体使用windows自带的字体查看器(fontview),里面包含三个字体名称: DFクラフト遊W7,DFPCraftYu-W7,DFGCraftYu-W7

    使用如下代码

    var pc = new PrivateFontCollection();
    pc.AddFontFile("DFCry7.ttc");

    pc.Families  包含3个字体名:DFCraftYu,DFPCraftYu-W7,DFGCraftYu-W7

    使用另一种代码

    var gtf = new GlyphTypeface(new Uri(FontFile));
    gtf.FaceNames 只包含2个字体名称:  DFクラフト遊W7 ,DFCraftYu

    据我了解,两种.net代码都是使用DirectWrite来获取字体信息的,那么为何获取的信息有差异,怎么获取与windows的fontview相同的字体信息

    2018年8月20日 16:35

全部回复

  • 你好,

    请参考下面的代码,使用Fonts.GetFontFamilies 和CultureInfo 来取日文字体名称:

    需要引用: PresentationCore

    string filePath = @"C:/path/DFCry7.ttc";
     foreach (FontFamily fontFamily in Fonts.GetFontFamilies(filePath))
    {
           CultureInfo cultureInfo = new CultureInfo("ja-jp");
           string name = fontFamily.FamilyNames[XmlLanguage.GetLanguage(cultureInfo.Name)];
           Console.WriteLine(name);
     }

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年8月21日 8:36
    版主