opentype
1.0.0
O pacote fornece um construtor e analisador de fontes OpenType. Pode ser útil dar uma olhada em uma abstração de nível superior chamada font , que depende internamente deste pacote.
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" ) ; Sua contribuição é muito apreciada. Não hesite em abrir um problema ou uma solicitação de tração. Observe que qualquer contribuição enviada para inclusão no projeto será licenciada de acordo com os termos fornecidos em licença.md.