Aspose.Font FOSS for Python 是一个纯-Python工具包,用于加载、检查、转换、子集化和预览 TrueType、OpenType、CFF、Type 1、WOFF、WOFF2 和 EOT 格式的字体。该库在 Python 3.10 或更高版本上运行,且不需要外部操作系统字体库或本机依赖。
该库提供了一个简洁的 API,用于通过 FontLoader 加载字体,通过 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()GlyphAccessor.get_glyphs_for_text()来解决字符串的所有图形.MoveTo, LineTo , QuadraticTo,,CurveTo和 ClosePath.Glyph 的属性KernPair 的核心对,以准确的文本布局计算.FontConverter.convert()CurveAdapter.quad_to_cubic()和 cubic_to_quads()convert_path_quad_to_cubic() 和 convert_path_cubic_to_quad()FontSubsetter.subset_by_text()FontSubsetter.subset_by_gids()FontSubsetter.subset_for_web() 生成网页优化子集.FontSubsetter.subset_by_presets()和 available_presets()的命名预设配置文件.FontSubsetter.analyze_coverage()和 analyze_web_coverage()来分析子集覆盖范围.FontCleaner.clean_for_web()CompatibilityChecker.compare_fonts() 和 compare_variable_instances() 的兼容性.AnimationPreviewBuilder.build_axis_sweep() 生成动画的APNG轴扫描AnimationPreviewBuilder.build_path() 构建多步动画路径.从文件路径打开TrueType或OpenTyme字体,并阅读其基本元数据.
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")
删除旧表和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库用于加载,检查,转换和下置字体在TF,OTF ,CFF,类型1,WOFF , WOFF2和EOT格式.没有本地依赖性要求.
运行 pip install "aspose-font>=1.0.0". 不需要系统级依赖. 该库可以在Windows,macOS和Linux上使用 Python 3.10或更新的版本.
FontLoader.open()读取了TTF,OTF和CFF类型1,WOFF和Wowff2等.FontConverter.convert()写入了TTF,Cff和WoWff2.EOT仅供阅读.
没有. Font.to_bytes() 在基类中不实现. 使用FontConverter.convert() 来生成一个新的Font,以所需的格式.
是的。FontSubsetter.subset_by_text(font, text) 返回一个仅包含给定文本所需字形的新 Font。FontSubsetter.subset(font, codepoints) 和 subset_by_gids(font, gids) 提供更细粒度的控制。