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

Aspose.Font FOSS pro Python

Open-source Python knihovna pro načítání, inspekci, konverzi a podmnožování souborů písem TTF, OTF, CFF, WOFF, WOFF2 a EOT font files.

Pracujte s písmy programově v Python

Aspose.Font FOSS pro Python je čistě-Python nástrojová sada pro načítání, inspekci, konverzi, podmnožování a náhled fontů ve formátech TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 a EOT. Knihovna běží na Python 3.10 nebo novějším a nevyžaduje žádné externí OS fontové knihovny ani nativní závislosti.

Knihovna poskytuje čisté API pro načítání fontů pomocí FontLoader, přístup ke glifům pomocí GlyphAccessor, konverzi formátů pomocí FontConverter, optimalizaci pro web pomocí FontCleaner, textově‑vědomé podmnožování pomocí FontSubsetter a animaci variabilních fontů pomocí AnimationPreviewBuilder. Metadata fontu, jako je název, rodina, styl, počet glifů, kódování a metriky, jsou přístupná přes základní třídu Font bez nutnosti ručního parsování binárních tabulek.

Aspose.Font FOSS je licencováno pod MIT a lze jej nainstalovat z PyPI jedním příkazem pip install. Je vhodné pro nástroje pro návrh fontů, webové fontové pipeline, renderovací enginy glyfů a jakoukoli Python aplikaci, která potřebuje číst, transformovat nebo vytvářet soubory fontů. Pro rodinu podnikových produktů viz Aspose.Font — Enterprise Product Family.

Načítání písem a detekce formátu

  • Načtěte písma z cest k souborům nebo surových bajtů pomocí FontLoader.open() a FontLoader.load()
  • Automaticky detekovat formát: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Přístup k metadatům písma přes základní třídu Font: font_name, font_family, font_style, num_glyphs
  • Přečtěte mapy kódování glifů s FontEncoding.unicode_to_gid() a get_all_codepoints()
  • Prohlédněte si metriky písma pomocí FontMetrics: vzestup, sestup, mezera řádku, em‑čtverec

Typické případy použití

  • Potrubí pro validaci fontů a extrakci metadat
  • CI/CD kontroly, které ověřují název rodiny písma a počet glifů
  • Webové služby pro zpracování fontů, které přijímají více vstupních formátů
  • Nástroje pro návrh fontů, které zobrazují metadata bez desktopového runtime

Přístup k glifům a inspekce cest

  • Načtěte glyfy podle ID nebo Unicode pomocí GlyphAccessor.get_glyph_by_id() a get_glyph_by_unicode()
  • Vyřešte všechny glyfy pro řetězec s GlyphAccessor.get_glyphs_for_text()
  • Zkontrolujte cesty obrysu glifu jako zadané příkazy: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Přístup k ohraničujícímu rámečku glifu, posuvné šířce a bočním odsazením z vlastností Glyph
  • Načtěte páry kerningu ze KernPair pro přesné výpočty rozvržení textu

Typické případy použití

  • Kontrola pokrytí glify pro vícejazyčné vykreslování textu
  • Extrahování obrysu pro SVG path nebo generování vektorů
  • Validace kerningové tabulky v QA pracovních postupech pro fonty
  • Výzkum tvarování textu a experimentování s nízkoúrovňovým rozvržením

Konverze písem

  • Převádějte mezi TTF, OTF, CFF, WOFF, WOFF2, EOT a Type 1 pomocí FontConverter.convert()
  • Přizpůsobte typy Bézierových křivek pomocí CurveAdapter.quad_to_cubic() a cubic_to_quads()
  • Převádějte cesty glyfů mezi kvadratickými a kubickými pomocí convert_path_quad_to_cubic() a convert_path_cubic_to_quad()

Typické případy použití

  • Webové fontové pipeline, které převádějí hlavní fonty TTF na WOFF2 pro distribuci
  • Nástroje pro typografické dílny, které exportují do více formátových cílů z jednoho zdroje
  • Zastaralá konverze EOT pro zpětně kompatibilní webové fontové zásobníky
  • Automatizovaná normalizace formátu písma v kontinuální integraci

Podmnožování fontů

  • Podmnožte písma podle Unicode textu pomocí FontSubsetter.subset_by_text()
  • Podmnožina podle seznamu ID glifu s FontSubsetter.subset_by_gids()
  • Vytvořte webově optimalizované podmnožiny s FontSubsetter.subset_for_web()
  • Použijte pojmenované přednastavené profily s FontSubsetter.subset_by_presets() a available_presets()
  • Analyzujte pokrytí podmnožiny pomocí FontSubsetter.analyze_coverage() a analyze_web_coverage()

Typické případy použití

  • Snížení velikosti payloadu WOFF2 pro webové stránky s omezenými sadami znaků
  • Vytváření jazykově specifických podmnožin fontů pro i18n nasazení
  • Pracovní postupy licencování fontů, které distribuují podmnožiny podle sady stránek
  • Optimalizace výkonu pro mobilní webové aplikace

Optimalizace webu a náhledy variabilních fontů

  • Odstraňte staré tabulky a záznamy názvů Mac pomocí FontCleaner.clean_for_web()
  • Zkontrolujte kompatibilitu os proměnného písma s CompatibilityChecker.compare_fonts() a compare_variable_instances()
  • Vytvořte animované APNG osové sweepy s AnimationPreviewBuilder.build_axis_sweep()
  • Vytvořte vícekrokové animační cesty pomocí AnimationPreviewBuilder.build_path()

Typické případy použití

  • Stránky s ukázkami písma a interaktivní průzkumníky os pro typografické fundice
  • CI pipeline, které ověřují chování variabilních fontů před distribucí
  • Webové výkonnostní pipeline, které odstraňují neesenciální binární tabulky
  • Náhledové miniatury písem pro aplikace pro správu písem

Načíst soubor písma

Otevřete písmo TrueType nebo OpenType ze souborové cesty a přečtěte jeho základní metadata.

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

Přístup k glyfům pro textový řetězec

Rozřešte všechny glyfy pro kódový bod Unicode a prozkoumejte jejich 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)

Generovat animaci prohlazování osy variabilního písma

Vytvořte animovaný APNG, který prochází osou proměnného písma od počáteční hodnoty po koncovou 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čistit písmo pro webové nasazení

Odstraňte staré tabulky a záznamy názvů Mac, aby se snížila velikost binárního souboru před webovým servírování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

Často kladené dotazy

Co je Aspose.Font FOSS pro Python?

Jedná se o bezplatnou, pod licencí MIT čistou Python knihovnu pro načítání, inspekci, konverzi a podmnožování písem ve formátech TTF, OTF, CFF, Type 1, WOFF, WOFF2 a EOT. Není vyžadována žádná nativní závislost.

Jak nainstaluji Aspose.Font FOSS pro Python?

Spusťte pip install "aspose-font>=1.0.0". Není potřeba žádná systémová závislost. Knihovna funguje na Windows, macOS a Linuxu s Python 3.10 nebo novějším.

Které formáty písem jsou podporovány?

FontLoader.open() čte TTF, OTF, CFF, Type 1, WOFF, WOFF2 a EOT. FontConverter.convert() zapisuje TTF, CFF, WOFF a WOFF2. EOT je pouze pro čtení.

Je Font.to_bytes() k dispozici?

Ne. Font.to_bytes() není implementováno v základní třídě. Použijte FontConverter.convert() k vytvoření nového Font v požadovaném formátu.

Mohu podmnožinu písma pro webové doručení?

Ano. FontSubsetter.subset_by_text(font, text) vrací nový Font, který obsahuje pouze glyfy potřebné pro zadaný text. FontSubsetter.subset(font, codepoints) a subset_by_gids(font, gids) poskytují jemnější kontrolu.

  

Podpora a vzdělávací materiály

 Čeština