TrueType
1.0.0
現在のバージョン:0.2.0
TrueTypeフォントからの読み取り、グリフィド、名前、説明、およびカーニング情報のためのTrueTypeパーサー。 .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ビットのカバレッジ | サポートされていません | 私はまだこれを使用するフォントを見ていません、サンプルを歓迎します |
| トリミングされた配列 | サポートされていません | 私はまだこれを使用するフォントを見ていません、サンプルを歓迎します |
| 多くの範囲マッピング | サポートされていません | 私はまだこれを使用するフォントを見ていません、サンプルを歓迎します |
| ユニコード変動シーケンス | サポートされていません | 単一のグリフのバリエーションを指定します |
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
}
}
}
}