22 个版本 (13 个破坏性版本)

0.14.1 2024年3月13日
0.14.0 2023年12月1日
0.13.0 2023年10月27日
0.10.2 2023年6月29日
0.0.1 2019年5月22日

#164 in 文本处理

Download history • Rust 包仓库 86/week @ 2024-04-08 • Rust 包仓库 112/week @ 2024-04-15 • Rust 包仓库 52/week @ 2024-04-22 • Rust 包仓库 138/week @ 2024-04-29 • Rust 包仓库 432/week @ 2024-05-06 • Rust 包仓库 335/week @ 2024-05-13 • Rust 包仓库 271/week @ 2024-05-20 • Rust 包仓库 143/week @ 2024-05-27 • Rust 包仓库 71/week @ 2024-06-03 • Rust 包仓库 15/week @ 2024-06-10 • Rust 包仓库 40/week @ 2024-06-17 • Rust 包仓库 75/week @ 2024-06-24 • Rust 包仓库 52/week @ 2024-07-01 • Rust 包仓库 68/week @ 2024-07-08 • Rust 包仓库 247/week @ 2024-07-15 • Rust 包仓库 165/week @ 2024-07-22 • Rust 包仓库

532 每月下载次数
用于 6 个包 (5 直接)

MIT/Apache

435KB
9K SLoC

诺拉德

一个用于处理统一字体对象文件(UFO)的Rust包。

一个用于读取、写入和操作统一字体对象文件(UFO)的包,这是一种常见的字体设计格式。


lib.rs:

用于处理统一字体对象文件(UFO)的实用程序。

此包中的类型对应于规范中描述的类型。

基本用法

使用类似于这样的结构体 Font 实例化一个UFO字体对象

use norad::Font;

let inpath = "RoflsExtraDim.ufo";
let mut font_obj = Font::load(inpath).expect("failed to load font");

可以使用API访问和修改 Font 中的数据

 # use norad::Font;
 # let inpath = "RoflsExtraDim.ufo";
 # let mut font_obj = Font::load(inpath).expect("failed to load font");
 let layer = font_obj.default_layer();
 let glyph_a = layer.get_glyph("A").expect("missing glyph");
 assert_eq!(glyph_a.name().as_ref(), "A");
 # let outpath = "RoflsSemiDim.ufo";
 # font_obj.save(outpath);

使用 Font::save 方法将 Font 序列化到磁盘上的UFO文件

 # use norad::Font;
 # let inpath = "RoflsExtraDim.ufo";
 # let mut font_obj = Font::load(inpath).expect("failed to load font");
 # let layer = font_obj.default_layer();
 # let glyph_a = layer.get_glyph("A").expect("missing glyph");
 # assert_eq!(glyph_a.name().as_ref(), "A");
 let outpath = "RoflsSemiDim.ufo";
 font_obj.save(outpath);

有关更多源代码示例,请参阅源代码库中的 examples 目录

API 文档

有关使用UFO字体操作完整API的详细信息,请参阅这些文档。

许可证

诺拉德在 MITApache v2.0 许可证下发布。

源代码

源代码文件可在 https://github.com/linebender/norad 找到。

依赖项

~4–5.5MB
~95K SLoC