OpenTypePackage

OpenTypeRootPackage.OpenTypePackage property

获取 OpenType 元数据包。

public OpenTypePackage OpenTypePackage { get; }

适当的价值

OpenType 元数据包。

评论

了解更多

例子

此示例说明如何读取 OpenType 字体元数据。

using (Metadata metadata = new Metadata(Constants.InputTtf))
{
    var root = metadata.GetRootPackage<OpenTypeRootPackage>();

    // 读取 OpenType 字体元数据
    foreach (var metadataEntry in root.OpenTypePackage.Fonts)
    {
        // 显示一些元数据属性的值
        Console.WriteLine(metadataEntry.Created);
        Console.WriteLine(metadataEntry.DirectionHint);
        Console.WriteLine(metadataEntry.EmbeddingLicensingRights);
        Console.WriteLine(metadataEntry.Flags);
        Console.WriteLine(metadataEntry.FontFamilyName);
        Console.WriteLine(metadataEntry.FontRevision);
        Console.WriteLine(metadataEntry.FontSubfamilyName);
        Console.WriteLine(metadataEntry.FullFontName);
        Console.WriteLine(metadataEntry.GlyphBounds);
        Console.WriteLine(metadataEntry.MajorVersion);
        Console.WriteLine(metadataEntry.MinorVersion);
        Console.WriteLine(metadataEntry.Modified);
        Console.WriteLine(metadataEntry.SfntVersion);
        Console.WriteLine(metadataEntry.Style);
        Console.WriteLine(metadataEntry.TypographicFamily);
        Console.WriteLine(metadataEntry.TypographicSubfamily);
        Console.WriteLine(metadataEntry.Weight);
        Console.WriteLine(metadataEntry.Width);
        foreach (OpenTypeBaseNameRecord nameRecord in metadataEntry.Names)
        {
            Console.WriteLine(nameRecord.NameID);
            Console.WriteLine(nameRecord.Platform);
            Console.WriteLine(nameRecord.Value);
            OpenTypeMacintoshNameRecord macintoshNameRecord = nameRecord as OpenTypeMacintoshNameRecord;
            if (macintoshNameRecord != null)
            {
                Console.WriteLine(macintoshNameRecord.Encoding);
                Console.WriteLine(macintoshNameRecord.Language);
            }
            else
            {
                OpenTypeUnicodeNameRecord unicodeNameRecord = nameRecord as OpenTypeUnicodeNameRecord;
                if (unicodeNameRecord != null)
                {
                    Console.WriteLine(unicodeNameRecord.Encoding);
                }
                else
                {
                    OpenTypeWindowsNameRecord windowsNameRecord = nameRecord as OpenTypeWindowsNameRecord;
                    if (windowsNameRecord != null)
                    {
                        Console.WriteLine(windowsNameRecord.Encoding);
                        Console.WriteLine(windowsNameRecord.Language);
                    }
                }
            }
        }
    }
}

也可以看看