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

Aspose.Font FOSS for 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.

Práce s písmy programově v Pythonu

Aspose.Font FOSS pro Python je čistě-Python nástrojová sada pro načítání, inspekci, konverzi, podmnožování a náhled fontů napříč formáty 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ů přes FontLoader, přístup ke glifům přes GlyphAccessor, konverzi formátů přes FontConverter, webovou optimalizaci přes FontCleaner, textově‑vědomé podmnožování přes FontSubsetter a animaci variabilních fontů přes AnimationPreviewBuilder. Metadata fontu jako 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 glifů 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.

Zjištění načítání písma a formátu

  • Naložit písma z cesty souboru nebo surové bajty s FontLoader.open() a FontLoader.load()
  • Automaticky detekovat formát: TTF, OTF , CFF , WOFF, WOff2, EOT, typ 1
  • Přístup k metadatám písma prostřednictvím základní třídy Font: font_name, font_family , font_style a num_glyphs
  • Číst mapy kódování glyfů s FontEncoding.unicode_to_gid() a get_all_codepoints()
  • Zkontrolujte metriky písma s FontMetrics: stoupání, sestup, mezerka v řádku, em-kvadrat

Typické případy použití

  • Zpracování fontů a extrakce metadát
  • Kontroly CI/CD ověřující název rodin písma a počet znaků.
  • Webové služby pro zobrazování fontů, které přijímá více vstupních formátů.
  • Nástroje pro návrh písma, které zobrazují metadata bez desktopového runtimeu

Přístup k glyfům a kontrola cesty

  • Získejte 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 pomocí GlyphAccessor.get_glyphs_for_text()
  • Prohlédněte si cesty obrysů glyfů jako zadané příkazy: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Přistupujte k ohraničujícímu rámečku glyfu, posuvné šířce a bočním odsazením z vlastností Glyph
  • Přečtěte páry kerningu z KernPair pro přesné výpočty rozvržení textu

Typické případy použití

  • Kontroly pokrytí glyfů pro vícejazyčné vykreslování textu
  • Výběr obrysů pro tvorbu SVG dráhy nebo vektoru
  • Validace základní tabulky v pracovních procesech pro kontrolu kvality písma
  • Výzkum tvarování textu a experimenty s nízkoúrovňovým uspořádáním

Konverze písma

  • Konverze mezi TTF, OTF a CFF s FontConverter.convert()
  • Přizpůsobte typy Bezierových křivek s CurveAdapter.quad_to_cubic() a cubic_to_quads()
  • Konvertujte glyfy mezi kvadratickou a kubickou dráhou pomocí convert_path_quad_to_cubic() a convert_path_cubic_to_quad()

Typické případy použití

  • Webové fonty, které konvertují TTF hlavní písma na WOFF2 pro distribuci.
  • Typy odlévacího nástroje, které exportují do více formátů cílů z jednoho zdroje
  • Konverze EOT pro starší webové fonty s kompatibilitou zpětně
  • Automatická normalizace formátu písma v průběžné integraci

Podřízení písma

  • Podskupina písmen podle Unicode textu s FontSubsetter.subset_by_text()
  • Podskupina podle seznamu identifikátorů glyfů s FontSubsetter.subset_by_gids()
  • Vytvořte web-optimalizované podmnožiny s FontSubsetter.subset_for_web()
  • Použijte jmenované nastavené 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 užitečného zatížení WOFF2 pro webové stránky s omezenými sadami znaků
  • Výroba jazykově specifických podskupin písmen pro nasazení i18n
  • Pracovní postupy pro licencování písmen, které distribuují podskupiny na jednu stránku.
  • Optimalizace výkonu pro mobilní webové aplikace

Webová optimalizace a předběžné zobrazení variabilních písmen

  • Zbavte se starých tabulek a záznamů Mac s FontCleaner.clean_for_web()
  • Zkontrolujte kompatibilitu variabilní os písma s CompatibilityChecker.compare_fonts() a compare_variable_instances()
  • Vytvořte animované APNG osové škrty pomocí AnimationPreviewBuilder.build_axis_sweep()
  • Vytvořte vícestupňové animační cesty pomocí AnimationPreviewBuilder.build_path()

Typické případy použití

  • Stránky vzorů písmen a interaktivní průzkumníky osí pro typovělitele
  • Plynové linky pro CI, které před distribucí ověřují chování variabilního písma
  • Webové výkonnostní potrubí, které vynechávají nepodstatné binární tabulky
  • Miniatury pro předchozí zobrazení písma v aplikacích pro správu písmen

Naložit soubor písma

Otevřete TrueType nebo OpenTyme font z cesty souboru a přečtěte si 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 znakům pro textový řetěz

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

Vytvořit variabilní animaci pro škrtání osy písma

Vytvořte animovaný APNG, který propíná proměnlivou os písma od počátku do konce hodnoty.

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

Čistit písmo pro nasazení webu

Zrušte staré tabulky a záznamy Macových jmen, abyste snížili velikost binárních dat před webovým serverem.

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?

Je to bezplatná knihovna s čistým Pythonem, která je licencována na MIT pro načítání, inspekci, konverzi a subsetování fontů v formátech TTF, OTF , CFF, Type 1, WOFF , WOff2 a EOT. Žádné nativní závislosti nejsou vyžadovány.

Jak nainstalovat Aspose.Font FOSS pro Python?

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

Jaké písmo jsou podporovány?

FontLoader.open() čte TTF, OTF a CFF, typ 1, WOFF a WOff2, EOT. FontConverter.convert() píše TFT, CFL a Woff2.

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.

Můžu si nastavit písmo pro webovou distribuci?

Ano. FontSubsetter.subset_by_text(font, text) vrací nový Font obsahující pouze glyphy potřebné pro daný text. FontSubsetter.subset(font, codepoints) a subset_by_gids(font, gids) poskytují jemnější kontrolu.

  

Podpora a vzdělávací materiály

 Čeština