1. Products
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS pentru Python

Bibliotecă Python open-source pentru încărcarea, inspectarea, conversia și subselectarea fișierelor de font TTF, OTF, CFF, WOFF, WOFF2 și EOT.

Lucrează programatic cu fonturi în Python

Aspose.Font FOSS pentru Python este un set de instrumente pure-Python pentru încărcarea, inspectarea, conversia, subselectarea și previzualizarea fonturilor în formatele TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 și EOT. Biblioteca rulează pe Python 3.10 sau o versiune ulterioară și nu necesită biblioteci de fonturi OS externe sau dependențe native.

Biblioteca expune un API curat pentru încărcarea fonturilor prin FontLoader, accesul la glife prin GlyphAccessor, conversia de format prin FontConverter, optimizarea web prin FontCleaner, subsetting conștient de text prin FontSubsetter și animația fonturilor variabile prin AnimationPreviewBuilder. Metadatele fontului, cum ar fi numele, familia, stilul, numărul de glife, codificarea și metricile, sunt accesibile prin clasa de bază Font fără a parsa manual tabelele binare.

Aspose.Font FOSS este licențiată sub MIT și poate fi instalată din PyPI cu o singură comandă pip install. Este potrivită pentru instrumente de proiectare a fonturilor, fluxuri de lucru pentru fonturi web, motoare de redare a glifelor și orice aplicație Python care trebuie să citească, să transforme sau să producă fișiere de font. Pentru familia de produse enterprise, vedeți Aspose.Font — Enterprise Product Family.

Încărcarea fonturilor și detectarea formatului

  • Încărcați fonturi din căi de fișiere sau din octeți brute cu FontLoader.open() și FontLoader.load()
  • Detectare automată a formatului: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Accesați metadatele fontului prin clasa de bază Font: font_name, font_family, font_style, num_glyphs
  • Citește hărțile de codare a glifelor cu FontEncoding.unicode_to_gid() și get_all_codepoints()
  • Inspectați metricele fontului cu FontMetrics: ascensiune, descență, spațiu între linii, pătrat em

Cazuri de Utilizare Tipice

  • Conducte de validare a fonturilor și extragere a metadatelor
  • Verificări CI/CD care verifică numele familiei de fonturi și numărul de glife
  • Servicii de ingestie a fonturilor web care acceptă mai multe formate de intrare
  • Instrumente de design de fonturi care afișează metadatele fără un runtime desktop

Acces la glife și inspectarea căii

  • Recuperează glifele după ID sau Unicode cu GlyphAccessor.get_glyph_by_id() și get_glyph_by_unicode()
  • Rezolvați toate glifele pentru un șir cu GlyphAccessor.get_glyphs_for_text()
  • Inspectați căile conturului glifului ca comenzi tastate: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Accesați caseta de delimitare a glifului, lățimea de avans și marginile laterale din proprietățile Glyph properties
  • Citește perechile de kerning din KernPair pentru calcule precise ale aranjamentului textului.

Cazuri de utilizare tipice

  • Verificări ale acoperirii glifelor pentru redarea textului multilingv
  • Extracție de contur pentru calea SVG sau generarea de vectori
  • Validarea tabelului de kerning în fluxurile de lucru QA pentru fonturi
  • Cercetare în modelarea textului și experimentare cu aranjament la nivel scăzut

Conversia fonturilor

  • Convertiți între TTF, OTF, CFF, WOFF, WOFF2, EOT și Type 1 cu FontConverter.convert()
  • Adaptează tipurile de curbe Bezier cu CurveAdapter.quad_to_cubic() și cubic_to_quads()
  • Convertiți căile de glif între quadratic și cubic cu convert_path_quad_to_cubic() și convert_path_cubic_to_quad()

Cazuri de utilizare tipice

  • Fluxuri de lucru pentru fonturi web care convertesc fonturile master TTF în WOFF2 pentru distribuție
  • Unelte de tipografie care exportă către mai multe formate țintă dintr-o singură sursă
  • Conversie EOT legacy pentru stive de fonturi web compatibile cu versiunile anterioare
  • Normalizarea automată a formatului fontului în integrarea continuă

Subsetting de fonturi

  • Creează subseturi de fonturi prin text Unicode cu FontSubsetter.subset_by_text()
  • Subset prin listă de ID-uri de glife cu FontSubsetter.subset_by_gids()
  • Produce submulțimi optimizate pentru web cu FontSubsetter.subset_for_web()
  • Aplicați profiluri presetate denumite cu FontSubsetter.subset_by_presets() și available_presets()
  • Analiza acoperirea subsetului cu FontSubsetter.analyze_coverage() și analyze_web_coverage()

Cazuri de utilizare tipice

  • Reducerea dimensiunii încărcăturii WOFF2 pentru paginile web cu seturi de caractere limitate
  • Generarea de subseturi de fonturi specifice limbii pentru implementări i18n
  • Fluxuri de lucru pentru licențierea fonturilor care distribuie subseturi pe seturi de pagini
  • Optimizarea performanței pentru aplicații web mobile

Optimizare Web și Previzualizări de Fonturi Variabile

  • Eliminați tabelele vechi și înregistrările de nume Mac cu FontCleaner.clean_for_web()
  • Verificați compatibilitatea axei fontului variabil cu CompatibilityChecker.compare_fonts() și compare_variable_instances()
  • Generează sweep-uri de axă animate în format APNG cu AnimationPreviewBuilder.build_axis_sweep()
  • Construiește căi de animație în mai mulți pași cu AnimationPreviewBuilder.build_path()

Cazuri de utilizare tipice

  • Pagini de specimen de fonturi și exploratoare interactive de axe pentru tipografii
  • Pipeline-uri CI care verifică comportamentul fonturilor variabile înainte de distribuție
  • Pipeline-uri de performanță web care elimină tabelele binare neesențiale
  • Miniaturi de previzualizare a fonturilor pentru aplicații de gestionare a fonturilor

Încarcă un fișier de font

Deschide un font TrueType sau OpenType dintr-o cale de fișier și citește metadatele sale de bază.

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

Accesează glifele pentru un șir de text

Rezolvați toate glifele pentru un punct de cod Unicode și inspectați traseele conturului lor.

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)

Generează o animație de sweep a axei unui font variabil

Creează un APNG animat care să parcurgă un ax de font variabil de la valoarea de început la cea de sfârșit.

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")

Curăță un font pentru implementare pe web

Eliminați tabelele vechi și înregistrările de nume Mac pentru a reduce dimensiunea binarului înainte de servirea pe web.

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

Frequently Asked Questions

Ce este Aspose.Font FOSS pentru Python?

Este o bibliotecă gratuită, licențiată MIT, pure-Python, pentru încărcarea, inspectarea, conversia și subsettarea fonturilor în formatele TTF, OTF, CFF, Type 1, WOFF, WOFF2 și EOT. Nu sunt necesare dependențe native.

Cum instalez Aspose.Font FOSS pentru Python?

Rulați pip install "aspose-font>=1.0.0". Nu sunt necesare dependențe la nivel de sistem. Biblioteca funcționează pe Windows, macOS și Linux cu Python 3.10 sau o versiune ulterioară.

Ce formate de fonturi sunt suportate?

FontLoader.open() citește TTF, OTF, CFF, Type 1, WOFF, WOFF2 și EOT. FontConverter.convert() scrie TTF, CFF, WOFF și WOFF2. EOT este doar în citire.

Este Font.to_bytes() disponibil?

Nu. Font.to_bytes() nu este implementat în clasa de bază. Utilizați FontConverter.convert() pentru a produce un nou Font în formatul dorit.

Pot să creez un subset al unui font pentru livrare pe web?

Da. FontSubsetter.subset_by_text(font, text) returnează un nou Font care conține doar glifele necesare pentru textul dat. FontSubsetter.subset(font, codepoints) și subset_by_gids(font, gids) oferă un control mai fin.

  

Support and Learning Resources

 Română