opentype
1.0.0
패키지는 OpenType 글꼴의 건축업자 및 구문 분석기를 제공합니다. 이 패키지에 내부적으로 의존하는 font 라는 높은 수준의 추상화를 살펴 보는 것이 도움이 될 수 있습니다.
use opentype :: truetype :: tables :: names :: { Names , NameID } ;
use opentype :: truetype :: tables :: { FontHeader , HorizontalHeader } ;
use opentype :: File ;
macro_rules! ok ( ( $result : expr ) => ( $result . unwrap ( ) ) ) ;
let path = "SourceSerifPro-Regular.otf" ;
let mut tape = ok ! ( std :: fs :: File :: open ( path ) ) ;
let File { mut fonts } = ok ! ( File :: read ( & mut tape ) ) ;
let font_header : FontHeader = ok ! ( ok! ( fonts [ 0 ] . take ( & mut tape ) ) ) ;
assert_eq ! ( font_header . units_per_em , 1000 ) ;
let horizontal_header : HorizontalHeader = ok ! ( ok! ( fonts [ 0 ] . take ( & mut tape ) ) ) ;
assert_eq ! ( horizontal_header . ascender , 918 ) ;
let names : Names = ok ! ( ok! ( fonts [ 0 ] . take ( & mut tape ) ) ) ;
let names = names
. iter ( )
. map ( | ( ( _ , _ , _ , name_id ) , value ) | ( name_id , value ) )
. collect :: < std :: collections :: HashMap < _ , _ > > ( ) ;
assert_eq ! ( ok! ( names [ & NameID :: FullFontName ] . as_ref ( ) ) , "Source Serif Pro" ) ;
assert_eq ! ( ok! ( names [ & NameID :: DesignerName ] . as_ref ( ) ) , "Frank Grießhammer" ) ; 귀하의 기여는 높이 평가됩니다. 주저하지 말고 문제 나 풀 요청을 시작하십시오. 프로젝트에 포함시키기 위해 제출 된 모든 기부금은 License.md에 제공된 조건에 따라 라이센스가 부여됩니다.