我想遍历给定字体的所有字体表,并打印/获取表内容属性和值,但我不知道如何做到这一点。
[dependencies]
write-fonts = { version = "*", features = ["read"] }
use write_fonts::read::FontRef;
fn main() {
let path_to_my_font_file = std::path::Path::new("/Users/ollimeier/Documents/Vary-Black.otf");
let font_bytes = std::fs::read(path_to_my_font_file).unwrap();
let font = FontRef::new(&font_bytes).expect("failed to read font data");
for table in font.table_directory.table_records() {
let tag = table.tag();
println!(" table {tag} ...");
println!(" {tag}: {:?}", table);
//for table_field in table {
// println!(" table field {table_field} ...");
//}
}
}
2条答案
按热度按时间xmd2e60i1#
要从
table_directory
遍历一个表,你必须调用方法traverse
来获得一个RecordResolver
,然后实现SomeTable
,得到一个iter
,你可以将其转换为:图书馆的API肯定是.
8zzbczxx2#
我设法找到了自己问题的答案:
它可能不是最好的代码,但它工作。所以,我非常感谢人们对代码的改进。它包含存储在这里的代码:Github链接[1]:https://github.com/googlefonts/fontations/blob/d4e07eb3b45836f3241e5a5343fdb697c40d978b/otexplorer/src/main.rs#L100