1 个不稳定版本
0.1.0 | 2021年6月10日 |
---|
#36 in #opentype
被 3 crates 使用
380KB
9K SLoC
fonttools-rs
这是尝试编写一个用于读取、操作和写入 TTF/OTF 文件的 Rust 库。它处于实验性开发的极早期阶段。欢迎贡献。
lib.rs
:
一个用于解析、操作和写入 OpenType 字体的库
这是一个预发布版本;它不是功能完整的。 值得注意的是,它支持可变字体,但不支持 GPOS/GSUB(OpenType 布局)。
示例用法
use fonttools::font::{self, Font, Table};
use fonttools::name::{name, NameRecord, NameRecordID};
// Load a font (tables are lazy-loaded)
let fontfile = File::open("Test.otf").unwrap();
use std::fs::File;
let mut myfont = font::load(fontfile).expect("Could not load font");
// Access an existing table
if let Table::Name(name_table) = myfont.get_table(b"name")
.expect("Error reading name table")
.expect("There was no name table") {
// Manipulate the table (table-specific)
name_table.records.push(NameRecord::windows_unicode(
NameRecordID::LicenseURL,
"http://opensource.org/licenses/OFL-1.1"
));
}
let mut outfile = File::create("Test-with-OFL.otf").expect("Could not create file");
myfont.save(&mut outfile);
有关创建和操作每个特定 OpenType 表结构的详细信息,请参阅下面的模块。以 [font] 模块作为创建、解析和保存 OpenType 字体的入口点。
依赖项
~11–21MB
~273K SLoC