Aktuelle Version: 0.2.0
Ein TrueType -Parser für Lesen, Glyphide, Namen, Beschreibungen und Kerning -Informationen aus TrueType -Schriftarten. Unterstützt .NetStandard 2.0 , .Net 4.6.1 und höher.
Sie können diese Bibliothek mit Nuget direkt zu Ihrem Projekt hinzufügen:
Install-Package RoyT.TrueType
Für weitere Informationen besuchen Sie bitte meinen Blog unter http://roy-t.nl.
Weitere Informationen zum Format und der Terminologie des TrueType -Schriftarts und der hier verwendeten Terminologie finden Sie in der Spezifikation des offenen Typs.
Es kann die folgenden Tabellen aller Schriftarten lesen, die in einer Standard -Windows 10 -Installation vorhanden sind:
Es enthüllt beide eine benutzerfreundliche API, um direkt nützliche Informationen aus diesen Tabellen zu erhalten, aber auch die Tabellen selbst frei
Es funktioniert sowohl auf .Net Core 1.0 als auch auf .Net 4.6.1 und höher, indem Sie auf .Net standard 1.6 abzielen
Referenz
| Subtable Format | unterstützt/nicht unterstützt | Anmerkungen |
|---|---|---|
| Segmentierte Zuordnung zu Delta -Werten | unterstützt | Am häufigsten |
| Abgeschnittene Tabellenzuordnung | unterstützt | |
| Segmentierte Abdeckung | unterstützt | |
| Byte -Codierungstabelle | unterstützt | Am wenigsten verbreitet |
| High-Byte-Mapping durch die Tabelle | nicht unterstützt | Ich habe noch keine Schriftart gesehen, die dies verwendet, Beispiele willkommen, willkommen |
| Gemischt 16-Bit- und 32-Bit-Abdeckung | nicht unterstützt | Ich habe noch keine Schriftart gesehen, die dies verwendet, Beispiele willkommen, willkommen |
| Angeschnittenes Array | nicht unterstützt | Ich habe noch keine Schriftart gesehen, die dies verwendet, Beispiele willkommen, willkommen |
| Viele zu einem Reichweite Mappings | nicht unterstützt | Ich habe noch keine Schriftart gesehen, die dies verwendet, Beispiele willkommen, willkommen |
| Unicode -Variationssequenzen | nicht unterstützt | Gibt Variationen einer einzelnen Glyphe an |
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
}
}
}
}