TrueType
1.0.0
當前版本:0.2.0
來自TrueType字體的TrueType解析器,用於閱讀,草甘膦,名稱,描述和KERNING信息。支持.NetStandard 2.0 , .Net 4.6.1及更高。
您可以使用Nuget將此庫直接添加到您的項目中:
Install-Package RoyT.TrueType
有關更多信息,請訪問我的博客http://roy-t.nl。
要了解有關此處使用的TRUETYPE字體格式和術語的更多信息,請參閱“開放類型”規範。
它可以讀取標準Windows 10安裝中存在的所有字體的以下表:
它既揭示了易於使用API來直接從這些表中獲取有用的信息
它通過目標.Net standard 1.6在.Net Core 1.0和.Net 4.6.1及更高版本上工作
參考
| 款項格式 | 支持/不支持 | 評論 |
|---|---|---|
| 分段映射到增量值 | 支持 | 最常見 |
| 修剪表映射 | 支持 | |
| 分段覆蓋範圍 | 支持 | |
| 字節編碼表 | 支持 | 最不常見的 |
| 高字節映射桌子 | 不支持 | 我還沒有看到使用此字體的字體,歡迎樣本 |
| 混合16位和32位覆蓋範圍 | 不支持 | 我還沒有看到使用此字體的字體,歡迎樣本 |
| 修剪陣列 | 不支持 | 我還沒有看到使用此字體的字體,歡迎樣本 |
| 多對一的範圍映射 | 不支持 | 我還沒有看到使用此字體的字體,歡迎樣本 |
| Unicode變化序列 | 不支持 | 指定單字形的變化 |
var font = TrueTypeFont . FromFile ( @"C:WindowsFontsarial.ttf" ) ;
// Using the helper functions
var glyphIndex = GlyphHelper . GetGlyphIndex ( 'A' , font ) ; // 36
var horizontalKerning = KerningHelper . GetHorizontalKerning ( 'A' , 'W' , font ) ; // -76
var name = NameHelper . GetName ( NameId . FontSubfamilyName , new CultureInfo ( "nl-NL" ) , font ) ; // Standaard
// Diving in deep yourself to get some specific information is also possible
if ( font . KernTable . SubtableCount > 0 )
{
var leftCode = GlyphHelper . GetGlyphIndex ( left , font ) ;
var rightCode = GlyphHelper . GetGlyphIndex ( right , font ) ;
foreach ( var subTable in font . KernTable . Subtables )
{
if ( subTable . Format0 != null && subTable . Direction == Direction . Vertical
&& subTable . Values == Values . Kerning )
{
var pair = new KerningPair ( ( ushort ) leftCode , ( ushort ) rightCode ) ;
if ( subTable . Format0 . Map . TryGetValue ( pair , out var value ) )
{
// Do something
}
}
}
}