#font #google #google-api

google-fonts

从Google下载和缓存TTF字体

6个版本

0.1.5 2024年7月23日
0.1.4 2024年7月23日

#372 in 文本处理

Download history 199/week @ 2024-07-14 434/week @ 2024-07-21 22/week @ 2024-07-28

655 每月下载量
pdf-doc 中使用

MIT 许可证

31MB
403K SLoC

google-fonts

从Google下载和缓存TTF字体。

11,689 字体和 1,708 字体家族。

类似于Android Studio中的可下载字体,以及Web Fonts Google API。

示例

使用几种方法下载字体数据。

use google_fonts::lemonada_variable;
use google_fonts::Font::NotoSansRegular;
use google_fonts::Font::RobotoRegular;
use ttf_parser::Face;

fn main() {
    // Get and cache font data with a named function.
    let font_data = lemonada_variable().unwrap();
    let face = Face::parse(&font_data, 0).unwrap();
    eprintln!("Font data: {:?}", face);

    // Get and cache font data with an enum variant function.
    let font_data = NotoSansRegular.get_with_cache().unwrap();
    let face = Face::parse(&font_data, 0).unwrap();
    eprintln!("Font data: {:?}", face);

    // Get font data without caching by using an enum variant function.
    let font_data = RobotoRegular.get().unwrap();
    let face = Face::parse(&font_data, 0).unwrap();
    eprintln!("Font data: {:?}", face);
}

Crate特性

fullvariablestatic Crate特性均可用。

  • variable 仅启用具有 可变字体技术 的字体。
  • static 仅启用具有 静态字体技术 的字体。
  • full 启用 variablestatic 特性。

variable 是默认特性。

可变字体技术较新,更灵活,可以在一个或两个文件中提供样式变化。静态字体技术使用更多的字体文件来完成同样的事情。大多数字体都在 static 特性中。

尽可能选择 variable 特性。

启用 variable 特性可以显著提高构建时间、crate大小和rust-analyzer性能。

文档注释字体图像

从文档中查看字体图像。

tooltip

依赖项

~4–18MB
~215K SLoC