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" ) ; การบริจาคของคุณได้รับการชื่นชมอย่างมาก อย่าลังเลที่จะเปิดปัญหาหรือคำขอดึง โปรดทราบว่าการบริจาคใด ๆ ที่ส่งเพื่อรวมไว้ในโครงการจะได้รับใบอนุญาตตามข้อกำหนดที่ให้ไว้ในใบอนุญาต