Introducere
Fonte TrueType (.ttf) și supraplatura lor OpenType (.otf) sunt fontul dominant. ambele formate împărtășesc aceeași structură a tabelului binar. înrădăcinată în specificația OpenType. Aspose.Font FOSS pentru Python expune această structură. prin intermediul TtfFont, oferind acces direct la tabele individuale OpenType, date corespunzătoare perechilor de kern;, axele de font variabile, și contoarele glif.
În ceea ce priveşte TtfFont clasa extinde o perioadă de timp mai mare. Font clasa de bază cu metode specifice TTF, inclusiv: get_blob, get_table_bytes, set_table_bytes, și instantiate pentru font variabil Blocare axului. TtfTableSet proprietate (ttf_tables) oferă acces tipic la informaţiile de pe internet. cele mai frecvente tabele OpenType: head, hhea, maxp, os2, name, post.
Biblioteca este publicată pe PyPI ca: aspose-font şi licenţiat sub MIT License. Nu are dependențe comerciale obligatorii.
Caracteristici cheie
Încărcarea fonturilor TTF și OTF
Utilizare: FontLoader.open pentru a încărca orice fișier de font TrueType sau OpenTybe:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)
FontLoader.open detectează formatul de font din header-ul fișierului. Ambele .ttf (TrueType) și de: .otf (OpenType CFF) fișiere sunt susținute și ambele return a TtfFont În cazul în care.
Accesarea la tabele OpenType prin TtfTableSet
În ceea ce priveşte ttf_tables proprietatea returnează o TtfTableSet Cu un conținut de maximum 0,5% din greutate, dar <= 1 kg Tablele OpenType. Fiecare proprietate returnă obiectul tabelului sau None dacă nu există:
În ceea ce priveşte ttf_tables proprietate pe TtfFont returnează un TtfTableSet Disponibilă. Părți de hârtie:
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | None
Fiecare proprietate returnă obiectul tabelului sau None dacă tabelul respectiv nu este prezent în Fişier de font. Acces TtfTableSet proprietăți de verificat pentru tabele specifice înainte de citire Pentru tabelele care nu sunt acoperite de accesorii denumiți, utilizați: TtfTableSet.get_raw(tag) la … în Obțineți baiti cruzi prin tag-ul OpenType de patru caractere.
Citirea bațelor de tabel brută
get_table_bytes(tag) returnă baitii cruzi pentru orice tabel OpenType. Use get_blob(tag) pentru o variantă “Nu-sigur” care returnează: None în absența tabelului:
TtfFont oferă două metode de acces la masa brută:
get_table_bytes(tag) -> bytesreturnă baitii cruzi pentru o tabelă numită (întrece dacă nu există)get_blob(tag) -> bytes | NonerambursăriNonedacă tabelul este absent (varianta sigură)
Ambele metode acceptă un tag de tabel OpenType cu patru caractere, cum ar fi: "cmap", "GDEF", sau "GPOS".- Foloseste-l . get_blob când o masă este opțional, astfel încât să puteți verifica pentru None înainte de prelucrare.
Parele de nuclei
get_kern_pairs() returnă toate perechile de kern codificate în font. Fiecare KernPair are o left (GlyphId), right (GlyphId) și value (int în unități de font):
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")
for pair in pairs[:5]:
print(f" Left: {pair.left} Right: {pair.right} Value: {pair.value}")
Metrice de fonturi
Metrurile standard sunt accesibile prin intermediul sistemului de evaluare a performanţelor. metrics proprietate:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")
Suport de font variabil
Pentru fonturi variabile, TtfFont expuneri is_variable, variable_axes, și named_instances.- Foloseste-l . get_axis(tag) pentru a recupera o axă specifică prin cele patru litere ale acesteia. Tag: înregistrare:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/RobotoFlex.ttf")
print(f"Is variable: {loaded.is_variable}")
print(f"Axes : {len(loaded.variable_axes)}")
În ceea ce priveşte get_axis(tag) metodă de la TtfFont retrage un VariableAxis cu cele patru litere ale sale. etichetă (de exemplu:. "wght" pentru greutate, "wdth" Întoarce None dacă axa este: nu este prezent în fontul de fvar - Nu, nu.
Convertiți fonturi
to_bytes(font_type) converte fontul într-un format diferit. Folosiți FontType înaltă să specifice obiectivul:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
fh.write(ttf_bytes)
print(f"Serialized: {len(ttf_bytes)} bytes")
Început rapid
Instalați biblioteca:
.venv/bin/pip install aspose-font
Încărcați un font TTF și inspectați-l:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("Roboto-Regular.ttf")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Glyphs : {loaded.num_glyphs}")
print(f"Variable : {loaded.is_variable}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")
Formatele suportate
| Formatul | Extindere | Citeşte. | Scrie . |
|---|---|---|---|
| TTF | .ttf | ✓ | — |
| OTF | .de la | ✓ | — |
| EOT | .Nu. | ✓ | — |
| CFF | .cff | ✓ | — |
| TYPE1 | .pfb/.pfa | ✓ | — |
| WOFF | .- Ce ? | ✓ | — |
| WOFF2 | .woff2 (în limba engleză) | ✓ | — |
Toate formate de încărcare prin intermediul FontLoader.open. Fonte TTF/OTF returnează o TtfFont În cazul în care.
Open Source & Licențiere
Aspose.Font FOSS for Python is released under the MIT License. You can use it in Proiectele personale, comerciale și open-source fără costuri. Codul sursă este disponibil pe GitHub și pachetul este distribuit prin PyPI ca aspose-font.