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

Aspose.Font FOSS pre Python

Open-source Python knižnica na načítanie, kontrolu, konverziu a podmnožkovanie súborov písiem TTF, OTF, CFF, WOFF, WOFF2 a EOT.

Pracujte s písmami programovo v Python

Aspose.Font FOSS pre Python je pure-Python toolkit na načítanie, kontrolu, konverziu, podmnožinu a náhľad písmeniek v formátoch TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 a EOT. Knižnica beží na Python 3.10 alebo novšom a nevyžaduje žiadne externé OS knižnice písmeniek ani natívne závislosti.

Knižnica poskytuje čisté API pre načítanie fontov prostredníctvom FontLoader, prístup k glyfom prostredníctvom GlyphAccessor, konverziu formátov prostredníctvom FontConverter, optimalizáciu pre web prostredníctvom FontCleaner, textovo‑vedomé podmnožovanie prostredníctvom FontSubsetter a animáciu variabilných fontov prostredníctvom AnimationPreviewBuilder. Metadáta fontov, ako názov, rodina, štýl, počet glyfov, kódovanie a metriky, sú prístupné cez základnú triedu Font bez manuálneho parsovania binárnych tabuliek.

Aspose.Font FOSS je licencovaný pod MIT a je inštalovateľný z PyPI jedným príkazom pip install. Je vhodný pre nástroje na návrh fontov, webové fontové pipeline, renderovacie motory glyfov a akúkoľvek Python aplikáciu, ktorá potrebuje čítať, transformovať alebo vytvárať fontové súbory. Pre rodinu podnikových produktov pozri Aspose.Font — Enterprise Product Family.

Načítanie písiem a detekcia formátu

  • Načítajte písma z ciest k súborom alebo surových bajtov pomocou FontLoader.open() a FontLoader.load()
  • Automaticky detekovať formát: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Prístup k metadátam písma prostredníctvom základnej triedy Font: font_name, font_family, font_style, num_glyphs
  • Prečítajte mapy kódovania glyfov s FontEncoding.unicode_to_gid() a get_all_codepoints()
  • Skontrolujte metriky písma pomocou FontMetrics: ascent, descent, line gap, em-square

Typické prípady použitia

  • Potrubia na overovanie fontov a extrakciu metadát
  • CI/CD kontroly, ktoré overujú názov rodiny písma a počet glyfov
  • Webové služby na príjem fontov, ktoré akceptujú viacero vstupných formátov
  • Nástroje na návrh fontov, ktoré zobrazujú metadáta bez desktopového runtime

Prístup k glyfom a kontrola cesty

  • Získajte glyfy podľa ID alebo Unicode pomocou GlyphAccessor.get_glyph_by_id() a get_glyph_by_unicode()
  • Rozlíšte všetky glyfy pre reťazec s GlyphAccessor.get_glyphs_for_text()
  • Skontrolujte cesty obrysov glyfu ako napísané príkazy: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Získajte ohraničujúcu krabicu glyfu, posunovú šírku a bočné nosiče z vlastností Glyph properties
  • Prečítajte páry kerningu z KernPair pre presné výpočty rozloženia textu

Typické prípady použitia

  • Kontrola pokrytia glyfov pre viacjazyčné vykresľovanie textu
  • Extrahovanie obrysu pre SVG cestu alebo generovanie vektorov
  • Validácia kerningovej tabuľky v QA pracovných postupoch pre fonty
  • Výskum tvarovania textu a experimentovanie s nízkoúrovňovým rozložením

Konverzia písiem

  • Prevádzajte medzi TTF, OTF, CFF, WOFF, WOFF2, EOT a Type 1 pomocou FontConverter.convert()
  • Prispôsobiť typy Bézierových kriviek s CurveAdapter.quad_to_cubic() a cubic_to_quads()
  • Previesť cesty glyfov medzi kvadratickými a kubickými pomocou convert_path_quad_to_cubic() a convert_path_cubic_to_quad()

Typické prípady použitia

  • Webové fontové pipeline, ktoré konvertujú master fonty TTF na WOFF2 pre distribúciu
  • Nástroje pre typografickú výrobu, ktoré exportujú do viacerých formátových cieľov z jedného zdroja
  • Legacy EOT konverzia pre spätnú kompatibilitu webových fontových zásobníkov
  • Automatizovaná normalizácia formátu písma v kontinuálnej integrácii

Podmnožovanie písma

  • Podmnožte písma podľa Unicode textu s FontSubsetter.subset_by_text()
  • Podmnožina podľa zoznamu ID glyfov s FontSubsetter.subset_by_gids()
  • Vytvorte webovo optimalizované podmnožiny s FontSubsetter.subset_for_web()
  • Použiť pomenované prednastavené profily s FontSubsetter.subset_by_presets() a available_presets()
  • Analyzovať pokrytie podmnožiny s FontSubsetter.analyze_coverage() a analyze_web_coverage()

Typické prípady použitia

  • Znižovanie veľkosti WOFF2 payloadu pre webové stránky s obmedzenými znakmi
  • Vytváranie jazykovo špecifických podmnožín fontov pre i18n nasadenia
  • Pracovné postupy licencovania fontov, ktoré distribuujú podmnožiny podľa sady stránok
  • Optimalizácia výkonu pre mobilné webové aplikácie

Webová optimalizácia a ukážky variabilných fontov

  • Odstráňte staré tabuľky a záznamy názvov Mac pomocou FontCleaner.clean_for_web()
  • Skontrolujte kompatibilitu osi premenlivých fontov s CompatibilityChecker.compare_fonts() a compare_variable_instances()
  • Vytvorte animované APNG osové sweepy s AnimationPreviewBuilder.build_axis_sweep()
  • Vytvorte viackrokové animačné cesty s AnimationPreviewBuilder.build_path()

Typické prípady použitia

  • Stránky s typografickými vzorkami a interaktívne prieskumníky osí pre typografické fundusy
  • CI pipeline-y, ktoré overujú správanie variabilných fontov pred distribúciou
  • Webové výkonnostné pipeline, ktoré zahadzujú neesenciálne binárne tabuľky
  • Náhľadové miniatúry písiem pre aplikácie na správu písiem

Načítanie súboru písma

Otvorte písmo TrueType alebo OpenType z cesty k súboru a prečítajte jeho základné metadáta.

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

Prístup k glyfom pre textový reťazec

Získajte všetky glyfy pre Unicode kódový bod a preskúmajte ich obrysové cesty.

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)

Generovať animáciu prechodu po osi variabilného písma

Vytvorte animovaný APNG, ktorý prejde osou premennej písma od počiatočnej po koncovú hodnotu.

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

Vyčistenie písma pre webové nasadenie

Odstráňte staré tabuľky a záznamy názvov Mac, aby ste zmenšili veľkosť binárneho súboru pred webovým servírovaním.

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

Čo je Aspose.Font FOSS pre Python?

Je to bezplatná, pod licenciou MIT čistá Python knižnica na načítanie, kontrolu, konverziu a podmnožovanie písiem vo formátoch TTF, OTF, CFF, Type 1, WOFF, WOFF2 a EOT. Nie sú potrebné žiadne natívne závislosti.

Ako nainštalujem Aspose.Font FOSS pre Python?

Spustite pip install "aspose-font>=1.0.0". Nie sú potrebné žiadne systémové závislosti. Knižnica funguje na Windows, macOS a Linux s Python 3.10 alebo novším.

Aké formáty fontov sú podporované?

FontLoader.open() číta TTF, OTF, CFF, Type 1, WOFF, WOFF2 a EOT. FontConverter.convert() zapisuje TTF, CFF, WOFF a WOFF2. EOT je len na čítanie.

Je Font.to_bytes() k dispozícii?

Nie. Font.to_bytes() nie je implementované v základnej triede. Použite FontConverter.convert() na vytvorenie nového Font v požadovanom formáte.

Môžem vytvoriť podmnožinu písma pre webové doručenie?

Áno. FontSubsetter.subset_by_text(font, text) vracia nový Font, ktorý obsahuje iba glyfy potrebné pre daný text. FontSubsetter.subset(font, codepoints) a subset_by_gids(font, gids) poskytujú jemnejšiu kontrolu.

  

Support and Learning Resources

 Slovenčina