Aspose.Font FOSS for Python 是一个纯-Python工具包,用于加载、检查、转换、子集化和预览 TrueType、OpenType、CFF、Type 1、WOFF、WOFF2 和 EOT 格式的字体。该库在 Python 3.10 或更高版本上运行,且不需要外部 OS 字体库或本机依赖。
该库通过 FontLoader 提供了简洁的字体加载 API,通过 GlyphAccessor 提供字形访问,通过 FontConverter 实现格式转换,通过 FontCleaner 进行网页优化,通过 FontSubsetter 实现文本感知子集化,并通过 AnimationPreviewBuilder 支持可变字体动画。字体元数据,如名称、系列、样式、字形计数、编码和度量,可通过 Font 基类访问,无需手动解析二进制表。
Aspose.Font FOSS 是 MIT 许可证的,并且可以通过单个 pip install 命令从 PyPI 安装。它适用于字体设计工具、网络字体流水线、字形渲染引擎,以及任何需要读取、转换或生成字体文件的 Python 应用程序。有关企业产品系列,请参阅 Aspose.Font — Enterprise Product Family。
FontLoader.open() 和 FontLoader.load() 从文件路径或原始字节加载字体Font 基类访问字体元数据:font_name、font_family、font_style、num_glyphsFontEncoding.unicode_to_gid() 和 get_all_codepoints() 读取字形编码映射FontMetrics 检查字体度量:上升、下降、行间距、em 方块GlyphAccessor.get_glyph_by_id() 和 get_glyph_by_unicode() 按 ID 或 Unicode 检索字形GlyphAccessor.get_glyphs_for_text() 解析字符串中的所有字形MoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyph 属性访问字形的边界框、前进宽度和侧边距KernPair 读取字距对,以进行准确的文本布局计算FontConverter.convert() 在 TTF、OTF、CFF、WOFF、WOFF2、EOT 和 Type 1 之间进行转换CurveAdapter.quad_to_cubic() 和 cubic_to_quads() 适配贝塞尔曲线类型convert_path_quad_to_cubic() 和 convert_path_cubic_to_quad() 在二次曲线和三次曲线之间转换字形路径FontSubsetter.subset_by_text() 根据 Unicode 文本子集化字体FontSubsetter.subset_by_gids() 按字形 ID 列表进行子集FontSubsetter.subset_for_web() 生成网页优化的子集FontSubsetter.subset_by_presets() 和 available_presets() 应用命名的预设配置文件FontSubsetter.analyze_coverage() 和 analyze_web_coverage() 分析子集覆盖率FontCleaner.clean_for_web() 删除旧版表和 Mac 名称记录CompatibilityChecker.compare_fonts() 和 compare_variable_instances() 的兼容性AnimationPreviewBuilder.build_axis_sweep() 生成动画 APNG 轴扫掠AnimationPreviewBuilder.build_path() 构建多步骤动画路径从文件路径打开 TrueType 或 OpenType 字体并读取其基本元数据。
from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name) # e.g. "Roboto"
print(font.font_family) # e.g. "Roboto"
print(font.num_glyphs) # e.g. 1294
解析 Unicode 代码点的所有字形并检查它们的轮廓路径。
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41) # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
创建一个动画 APNG,使可变字体轴从起始值扫过到结束值。
from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder
font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
asset = AnimationPreviewBuilder.build_axis_sweep(
font,
axis_tag="wdth",
start_val=75.0,
end_val=100.0,
frames=3,
fps=10,
text="A",
size=10.0,
bounce=True,
)
asset.write_to("roboto-sweep-wdth.png")
在 Web 提供之前,剥除遗留表和 Mac 名称记录以减小二进制大小。
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped
它是一个免费、MIT 许可证的纯-Python库,用于加载、检查、转换和子集化 TTF、OTF、CFF、Type 1、WOFF、WOFF2 和 EOT 格式的字体。无需本地依赖。
运行 pip install "aspose-font>=1.0.0"。无需系统级依赖。该库在 Windows、macOS 和 Linux 上均可运行,要求 Python 3.10 或更高版本。
FontLoader.open() 读取 TTF、OTF、CFF、Type 1、WOFF、WOFF2 和 EOT。FontConverter.convert() 写入 TTF、CFF、WOFF 和 WOFF2。EOT 为只读。
不。Font.to_bytes() 在基类中未实现。使用 FontConverter.convert() 生成所需格式的新 Font。
是的。FontSubsetter.subset_by_text(font, text) 返回一个仅包含给定文本所需字形的新 Font。FontSubsetter.subset(font, codepoints) 和 subset_by_gids(font, gids) 提供更细粒度的控制。