Introducere
Aspose.Font FOSS for Python provides a coherent set of classes for every common sarcina de gestionare a fonturilor: încărcarea fişierelor cu fonturi în mai multe formate, citirea metadatelor şi datele cu glifoane, conversia între formate, subsetarea pentru livrare pe web și curățarea Acest ghid merge prin fiecare capacitate de bază cu exemple de cod funcțional extrase din API verificată a bibliotecii.
Pachetul (aspose-font) este licențiat MIT, necesită Python 3.10+, și nu are nici o Dependenţe de bibliotecă la nivel OS. Instalaţi-o cu pip install aspose-font>=1.0.0.
Caracteristici cheie
Încărcarea fonturilor cu FontLoader
FontLoader este punctul de intrare unic pentru toate operațiunile de încărcare a fontului. open() metoda acceptă o cale de fișier (str sau Path) și detectează automat formatul. load() metoda acceptă bați brute pentru fluxuri de lucru în memorie. Ambele retur a Font- tipărită Obiectul poate fi inspectat imediat.
from aspose_font.loader import FontLoader
# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")
# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
font_bytes = f.read()
font = FontLoader.load(font_bytes)
Citirea metadatei de font prin clasa de bază a tipului de scris
Odată încărcat, sistemul de control al Font clasa de bază expune proprietățile standard ale metadatelor fără a fi utilizate alte caracteristici. care vă cere să analizați tabele de font binar. Proprietățile font_name, font_family, font_style, și num_glyphs acoperă cele mai comune nevoi de metadate.
from aspose_font.loader import FontLoader
font = FontLoader.open("NotoSans-Regular.ttf")
print(f"Name: {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Style: {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")
Codarea și accesul la glifoane
FontEncoding mapuri Codul Unicode indică ID-urile de glifoane. Utilizarea unicode_to_gid() pentru: puncte de cod unic sau get_all_codepoints() pentru a enumera acoperirea completă a Fontul. GlyphAccessor apoi recuperează obiecte de glif prin ID via get_glyph_by_id(), prin Unicode via get_glyph_by_unicode(), sau pentru o șir de text prin intermediul: get_glyphs_for_text().
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41) # 'A'
print(f"Glyph ID for 'A': {glyph_id}")
# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
# Inspect path commands
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
Conversiunea fontelor cu FontConverter
FontConverter.convert() convertează un font încărcat între formate suportate. Treci printr-un fontul sursă și identificator format țintă pentru a obține un nou obiect de tip în ţinta Formatul: metoda tratează CFF, TTF, WOFF , WOff2, EOT și Tip 1 ca surse și tipuri de date. Ţinta.
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")
Optimizarea web-ului cu FontCleaner
FontCleaner.clean_for_web() elimină tabele binare care nu sunt necesare pentru web livrarea fontului în special DSIG, FFTM și meta ?? și benzile de platforme Mac (platform_id=1) Rezultatul este un binar mai slab care reduce rețeaua Argumentele opționale pentru cuvinte cheie vă permit să utilizați un număr de termeni care nu sunt specificaţi în tabelul. să păstreze tipuri specifice de tabele, dacă este necesar.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)
# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
font,
drop_metadata_tables=False,
drop_legacy_tables=True,
drop_mac_names=True,
)
Inspecția traseului glifului
Fiecare Glyph Obiectul expune conturul său ca un GlyphPath care au: commands secvenţă conține cazuri tipate de: MoveTo, LineTo, QuadraticTo, CurveTo, și ClosePath.Fiecare comandă poartă atributele corespunzătoare de coordonate , de exemplu:, CurveTo are o x1, y1, x2, y2, x, y care vă permite să extrageți Bézier brut. datele pentru renderizare, generarea SVG sau geometria de coliziune.
from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")
Început rapid
pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")
Formatele suportate
| Formatul | Extindere | Citeşte. | Scrie . |
|---|---|---|---|
| TTF | .ttf | ✓ | ✓ |
| OTF | .de la | ✓ | ✓ |
| CFF | .cff | ✓ | ✓ |
| TYPE1 | .pfb / .pfa | ✓ | ✓ |
| WOFF | .- Ce ? | ✓ | ✓ |
| WOFF2 | .woff2 (în limba engleză) | ✓ | ✓ |
| EOT | .Nu. | ✓ | ✓ |
Open Source & Licențiere
Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at Aspose-font-foss/Aspose.Font-FOSS-for-Python şi pachetul este pe PyPI ca aspose-font.