我想打开一个字体文件并修改例如usWeightClass并将其保存在不同的位置-使用Rust:https://github.com/googlefonts/fontations
我已经能够加载文件,从字体中读取数据,但我无法修改和保存它。
我希望,它应该以某种方式与WriteFont一起工作(但我不知道如何):https://docs.rs/write-fonts/0.5.0/write_fonts/trait.FontWrite.html#
任何帮助将不胜感激。先谢谢你了,奥利
Cargo.toml
[dependencies]
write-fonts = "0.5.0"
read-fonts = "0.3.0"
font-types = "0.1.8"
main.rs
use read_fonts::{FontRef, TableProvider};
fn main() {
pub static FONT_DATA: &[u8] = include_bytes!("/path/to/a/font/somefont.ttf");
let font = FontRef::new(FONT_DATA).unwrap();
let mut os2 = font.os2().expect("missing OS/2 table");
println!("os2.version: {}", os2.version());
println!("os2.us_weight_class: {}", os2.us_weight_class());
let mut name = font.name().expect("missing name table");
for item in name.name_record() {
println!("name_id: {:?}", item.name_id);
println!("language_id: {:?}", item.language_id);
let data = item.string(name.string_data()).unwrap();
println!("String entry: {:?}", data.chars().collect::<String>());
};
}
1条答案
按热度按时间blmhpbnm1#
我还没有使用过这个库或一般的字体,但在文档中进行了一些挖掘后,这似乎可以工作: