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 Core 1.0 및 .Net 4.6.1 에서 .Net standard 1.6 목표로하여 더 높습니다.
참조
| 미묘한 형식 | 지원/지원 | 발언 |
|---|---|---|
| 델타 값에 대한 세그먼트 매핑 | 지원 | 가장 흔합니다 |
| 트림 테이블 매핑 | 지원 | |
| 세분화 된 범위 | 지원 | |
| 바이트 인코딩 테이블 | 지원 | 가장 일반적입니다 |
| 테이블을 통한 고해상도 매핑 | 지원되지 않습니다 | 나는 이것을 아직 사용하는 글꼴을 보지 못했습니다. 샘플은 환영합니다 |
| 혼합 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
}
}
}
}