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

Aspose.Font FOSS for Python

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

Lucrarea cu fonturi programate în Python

Aspose.Font FOSS pentru Python este un set de instrumente pure-Python pentru încărcarea, inspectarea, conversia, subsetting-ul ș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 externe de fonturi ale sistemului de operare sau dependențe native.

Biblioteca expune un API curat pentru încărcarea fonturilor prin FontLoader, accesul la glife prin GlyphAccessor, conversia formatelor 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 parcurge 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 design de fonturi, 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 fontului și detectarea formatului

  • Încarcă fonturi din căile fișierelor sau bați brute cu FontLoader.open() și FontLoader.load()
  • Format de detectare automată: TTF, OTF (în mod automat) CFF, WOFF (in mod automatic), WOff2 ( în mod automatic), EOT (din tip 1)
  • Accesarea metadatei font prin clasa de bază Font: font_name, font_family , font_style şi num_glyphs
  • Citeste hărţile de codificare a glifului cu FontEncoding.unicode_to_gid() şi get_all_codepoints()
  • Verificați fontul cu FontMetrics: ascensiune, coborâre, decalaj liniar, em-pătrate

Cazuri tipice de utilizare

  • Pipelines de validare a fontelor și extracție a metadatelor
  • Verificări CI/CD care verifică numele familiei de tipuri și numărul glifoanelor
  • Servicii de ingestionare a fontelor web care acceptă mai multe formate de intrare.
  • Unelte de proiectare a fontelor care afișează metadate fără un runtime desktop

Accesul la glifoane și inspecția căii de deplasare

  • Recuperați 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 glifei ca comenzi tastate: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Accesați cutia de delimitare a glifei, lățimea de avans și marginile laterale din proprietățile Glyph
  • Citiți perechile de kerning din KernPair pentru calcule precise ale aranjamentului textului

Cazuri tipice de utilizare

  • Verificări de acoperire a glifului pentru redarea textului multilingv
  • Extractarea conturului pentru generarea de căi sau vectori SVG
  • Validarea tabelului de bază în fluxurile de lucru QA pentru fonturi
  • Cercetarea formării textului și experimentele cu layout-uri de nivel scăzut

Conversiunea fontului

  • Convertiti între TTF, OTF (de la poziția de ocupare a locului), CFF (De la locul de muncă) și WOFF, WOff2 (după poziție de ocupație a locurilor de munca) cu FontConverter.convert()
  • Adaptați tipurile de curbă Bezier cu CurveAdapter.quad_to_cubic() și cubic_to_quads()
  • Convertează căile de glif între pătrată și cub cu convert_path_quad_to_cubic() și convert_path_cubic_to_quad()

Cazuri tipice de utilizare

  • Pipeline-uri de font web care convertesc tipurile principale TTF în WOFF2 pentru distribuție
  • Tipul de instrumentare a turnerii care exportă la ținte cu mai multe formate dintr-o singură sursă
  • Conversiunea EOT tradițională pentru stacurile de font web compatibile cu versiunile anterioare
  • Normalizarea automată a formatului de font în integrare continuă

Subsetarea fontului

  • Subset de fonturi prin text Unicode cu FontSubsetter.subset_by_text()
  • Subset de lista ID-uri cu FontSubsetter.subset_by_gids()
  • Produce subsete optimizate pentru web cu FontSubsetter.subset_for_web()
  • Aplicați profiluri pre-setate numite cu FontSubsetter.subset_by_presets() și available_presets()
  • Analizați acoperirea subsetului cu FontSubsetter.analyze_coverage() și analyze_web_coverage()

Cazuri tipice de utilizare

  • Reducerea dimensiunii WOFF2 pentru paginile web cu seturi de caractere limitate.
  • Producerea de subsete specifice pentru limbaje ale fontelor pentru implementările i18n
  • Fluxuri de lucru pentru licențierea fontelor care distribuie subsete pe set-pagină
  • Optimizarea performanței pentru aplicațiile web mobile

Optimizarea web și variate font preview-uri

  • Strip tabele și înregistrări de nume Mac cu FontCleaner.clean_for_web()
  • Verificați compatibilitatea variabilelor axul de font cu CompatibilityChecker.compare_fonts() și compare_variable_instances()
  • Generați ștergere ax APNG animate cu AnimationPreviewBuilder.build_axis_sweep()
  • Construiți căile de animație cu mai multe pași cu AnimationPreviewBuilder.build_path()

Cazuri tipice de utilizare

  • Pagini de tip specimen și exploratoare interactive pentru axe, pentru turnătoriile de modele
  • Pipeline-uri de CI care verifică comportamentul variabil al fontului înaintea distribuției
  • Pipeline-uri de performanță web care elimină tabele binare neesențiale
  • Miniaturi de previzualizare a fontelor pentru aplicațiile de gestionare fonturilor

Încărcarea fişierului de font

Deschideți un font TrueType sau OpenTybe dintr-o cale de fișier și citiți 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

Glifuri de acces pentru o șiră de text

Răspunde la toate glifele pentru un punct de cod Unicode și inspectează căile 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)

Genera o animație de ștergere a axului variabil al fontului

Creează un APNG animat care săritează o axă de font variabilă de la începutul până la valoarea finală.

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ățați un tip de scris pentru implementarea web-ului

Strip tabele vechi și înregistrări de nume Mac pentru a reduce dimensiunea binar înainte de web servire.

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ă Python liberă, licențiată de MIT pentru încărcarea, inspecția, conversia și subsetarea fonturilor în formatele TTF, OTF , CFF, Tip 1, WOFF , WOff2 și EOT. Nu sunt necesare dependențe native .

Cum instalați 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 tipuri de font sunt suportate?

FontLoader.open() citește TTF, OTF , CFF, Tipul 1, WOFF , WOff2 și EOT. FontConverter.convert() scrie TFT, CFC, WOF şi WOFL2. Eot este doar pentru citire.

Font.to_bytes este disponibil?

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

Pot să subset un font pentru livrare web?

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

  

Support and Learning Resources

 Română