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

Aspose.Font FOSS skirta Python

Atviro kodo Python biblioteka, skirta įkėlimui, tikrinimui, konvertavimui ir subsetų kūrimui TTF, OTF, CFF, WOFF, WOFF2 ir EOT šriftų failų.

Dirbkite su šriftais programiškai Python

Aspose.Font FOSS for Python yra grynas Python įrankių rinkinys, skirtas šriftų įkėlimui, tikrinimui, konvertavimui, daliniam išrinkimui ir peržiūrai, palaikant TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 ir EOT formatus. Biblioteka veikia Python 3.10 arba vėlesnėse versijose ir nereikalauja išorinių OS šriftų bibliotekų ar natūralių priklausomybių.

Biblioteka suteikia švarią API šriftų įkėlimui per FontLoader, glifų prieigai per GlyphAccessor, formatų konvertavimui per FontConverter, žiniatinklio optimizavimui per FontCleaner, teksto sąmoningam dalijimui per FontSubsetter ir kintamų šriftų animacijai per AnimationPreviewBuilder. Šrifto metaduomenys, tokie kaip pavadinimas, šeima, stilius, glifų skaičius, koduotė ir metrika, yra prieinami per Font bazinę klasę be rankinio dvejetainių lentelių analizavimo.

Aspose.Font FOSS yra licencijuota pagal MIT licenciją ir įdiegiama iš PyPI vienu pip install komanda. Ji tinka šriftų dizaino įrankiams, internetinių šriftų konvejeriams, glifų atvaizdavimo varikliams ir bet kuriai Python programai, kuri turi skaityti, transformuoti arba kurti šriftų failus. Dėl įmonės produktų šeimos žiūrėkite Aspose.Font — Enterprise Product Family.

Šriftų įkėlimas ir formato aptikimas

  • Įkelkite šriftus iš failų kelių arba neapdorotų baitų naudodami FontLoader.open() ir FontLoader.load()
  • Automatiškai aptikti formatą: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Gauti šrifto metaduomenis per Font bazinę klasę: font_name, font_family, font_style, num_glyphs
  • Skaityti glifų kodavimo žemėlapius su FontEncoding.unicode_to_gid() ir get_all_codepoints()
  • Patikrinkite šrifto matmenis su FontMetrics: pakilimas, nusileidimas, linijos tarpas, em kvadratas

Įprasti naudojimo atvejai

  • Šriftų validacijos ir metaduomenų išgavimosi kanalai
  • CI/CD patikrinimai, kurie tikrina šrifto šeimos pavadinimą ir glifų skaičių
  • Žiniatinklio šriftų įsisavinimo paslaugos, priimančios kelis įvesties formatus
  • Šriftų kūrimo įrankiai, rodo metaduomenis be darbalaukio vykdymo aplinkos

Glifų prieiga ir kelio tikrinimas

  • Gaukite glifus pagal ID arba Unicode naudodami GlyphAccessor.get_glyph_by_id() ir get_glyph_by_unicode()
  • Išspręsti visus glifus eilutėje su GlyphAccessor.get_glyphs_for_text()
  • Patikrinkite glifo kontūro kelius kaip įvestas komandas: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Gaukite glifo ribų dėžutę, žingsnio plotį ir šoninius atstumus iš Glyph savybių
  • Perskaityti kerning poras iš KernPair tiksliai teksto išdėstymo skaičiavimams

Įprasti naudojimo atvejai

  • Glifų aprėpties patikrinimai daugiakalbiam teksto atvaizdavimui
  • Kontūro išgavimas SVG path arba vektoriaus generavimui
  • Kerning lentelės tikrinimas šriftų QA darbo srautų metu
  • Teksto formavimo tyrimai ir žemo lygio išdėstymo eksperimentai

Šriftų konvertavimas

  • Konvertuokite tarp TTF, OTF, CFF, WOFF, WOFF2, EOT ir Type 1 naudodami FontConverter.convert()
  • Adaptuokite Bézier kreivės tipus su CurveAdapter.quad_to_cubic() ir cubic_to_quads()
  • Konvertuokite glifo kelius tarp kvadratinio ir kubinio naudodami convert_path_quad_to_cubic() ir convert_path_cubic_to_quad()

Įprasti naudojimo atvejai

  • Žiniatinklio šriftų konvejeriai, kurie konvertuoja TTF pagrindinius šriftus į WOFF2 paskirstymui
  • Šriftų gamyklos įrankiai, kurie eksportuoja į kelis formatų tikslus iš vieno šaltinio
  • Senosios EOT konvertavimas, skirtas atgaliniam suderinamumui su žiniatinklio šriftų rinkiniais
  • Automatinė šriftų formato normalizavimas nuolatinėje integracijoje

Šrifto dalinimas

  • Sutrumpinkite šriftus pagal Unicode tekstą su FontSubsetter.subset_by_text()
  • Sutrumpinti pagal glifo ID sąrašą su FontSubsetter.subset_by_gids()
  • Kurti internetui optimizuotus potinklius su FontSubsetter.subset_for_web()
  • Taikykite pavadintus išankstinius profilius su FontSubsetter.subset_by_presets() ir available_presets()
  • Analizuokite poaibio aprėptį su FontSubsetter.analyze_coverage() ir analyze_web_coverage()

Įprasti naudojimo atvejai

  • WOFF2 duomenų apkrovos dydžio mažinimas tinklalapiams su ribotais simbolių rinkiniais
  • Kalbos specifinių šriftų potinklių kūrimas i18n diegimams
  • Šriftų licencijavimo darbo srautai, kurie paskirsto potinkinius pagal puslapių rinkinį
  • Veikimo optimizavimas mobiliosioms žiniatinklio programoms

Žiniatinklio optimizavimas ir kintamų šriftų peržiūros

  • Pašalinkite pasenusias lenteles ir „Mac“ pavadinimų įrašus naudodami FontCleaner.clean_for_web()
  • Patikrinkite kintamojo šrifto ašies suderinamumą su CompatibilityChecker.compare_fonts() ir compare_variable_instances()
  • Generuokite animuotus APNG ašies perbraukimus su AnimationPreviewBuilder.build_axis_sweep()
  • Sukurkite kelių žingsnių animacijos kelius su AnimationPreviewBuilder.build_path()

Įprasti naudojimo atvejai

  • Šriftų pavyzdžių puslapiai ir interaktyvūs ašies tyrinėtojai šriftų fondų įmonėms
  • CI konvejeriai, kurie patikrina kintamojo šrifto elgseną prieš paskirstymą
  • Žiniatinklio našumo konvejeriai, kurie pašalina nesvarbias dvejetaines lenteles
  • Šriftų peržiūros miniatiūros šriftų valdymo programoms

Įkelti šrifto failą

Atidarykite TrueType arba OpenType šriftą iš failo kelio ir perskaitykite jo pagrindinius metaduomenis.

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

Pasiekti glifus teksto eilutei

Išspręskite visus glifus Unicode kodo taškui ir patikrinkite jų kontūro kelius.

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)

Generuoti kintamo šrifto ašies perbraukimo animaciją

Sukurkite animuotą APNG, kuri perkelia kintamojo šrifto ašį nuo pradinės iki galutinės reikšmės.

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

Išvalyti šriftą internetiniam paskirstymui

Pašalinkite pasenusias lenteles ir „Mac“ pavadinimų įrašus, kad sumažintumėte binarinio failo dydį prieš pateikiant internete.

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

Kas yra Aspose.Font FOSS Python?

Tai yra nemokama, MIT licencijuota gryna-Python biblioteka šriftų įkėlimui, tikrinimui, konvertavimui ir išskyrimui TTF, OTF, CFF, Type 1, WOFF, WOFF2 ir EOT formatuose. Nereikia jokių natūralių priklausomybių.

Kaip įdiegti Aspose.Font FOSS Python?

Paleiskite pip install "aspose-font>=1.0.0". Sistemos lygio priklausomybės nereikalingos. Biblioteka veikia Windows, macOS ir Linux su Python 3.10 arba vėlesne versija.

Kokie šriftų formatai palaikomi?

FontLoader.open() skaito TTF, OTF, CFF, Type 1, WOFF, WOFF2 ir EOT. FontConverter.convert() rašo TTF, CFF, WOFF ir WOFF2. EOT yra tik skaitymui.

Ar Font.to_bytes() prieinama?

Ne. Font.to_bytes() nėra įgyvendinta bazinėje klasėje. Naudokite FontConverter.convert(), kad sukurtumėte naują Font norimu formatu.

Ar galiu išskirti šriftą tinklo pristatymui?

Taip. FontSubsetter.subset_by_text(font, text) grąžina naują Font, kuriame yra tik reikalingi glifai pateiktam tekstui. FontSubsetter.subset(font, codepoints) ir subset_by_gids(font, gids) suteikia smulkesnę kontrolę.

  

Support and Learning Resources

 Lietuvių