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

Aspose.Font FOSS for Python

Open-source Python-bibliotek for lasting, inspeksjon, konvertering og underutvalg av TTF-, OTF-, CFF-, WOFF-, WOFF2- og EOT-skriftfiler.

Arbeid med skrifter programmatisk i Python

Aspose.Font FOSS for Python er et rent-Python verktøysett for lasting, inspeksjon, konvertering, delmengde og forhåndsvisning av skrifttyper på tvers av TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 og EOT-formater. Biblioteket kjører på Python 3.10 eller senere og krever ingen eksterne OS-skriftbiblioteker eller native avhengigheter.

Biblioteket eksponerer et rent API for fonthenting via FontLoader, glyph‑tilgang via GlyphAccessor, formatkonvertering via FontConverter, weboptimalisering via FontCleaner, tekstbevisst subsetting via FontSubsetter, og variabel fontanimasjon via AnimationPreviewBuilder. Fontmetadata som navn, familie, stil, glyph count, encoding og metrics er tilgjengelig gjennom Font baseklassen uten å parse binære tabeller manuelt.

Aspose.Font FOSS er MIT-lisensiert og kan installeres fra PyPI med en enkelt pip install-kommando. Den er egnet for verktøy for skriftdesign, webskrift-pipelines, glyf‑gjengivelsesmotorer, og enhver Python-applikasjon som trenger å lese, transformere eller produsere skriftefiler. For bedriftsproduktfamilien, se Aspose.Font — Enterprise Product Family.

Skriftlasting og formatgjenkjenning

  • Last inn skrifttyper fra filstier eller rå bytes med FontLoader.open() og FontLoader.load()
  • Automatisk oppdag format: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Få tilgang til skrifttype‑metadata via Font basisklasse: font_name, font_family, font_style, num_glyphs
  • Les glyf‑enkodingskart med FontEncoding.unicode_to_gid() og get_all_codepoints()
  • Inspiser skrifttypemålinger med FontMetrics: stigning, nedstigning, linjeavstand, em-firkant

Typiske bruksområder

  • Fontvalidering og metadatauttrekks‑pipelines
  • CI/CD-sjekker som verifiserer skrifttypefamilienavn og antall glyfer
  • Web‑font‑inntakstjenester som godtar flere inndataformater
  • Fontdesignverktøy som viser metadata uten en desktop runtime

Glyftilgang og baneinspeksjon

  • Hent glyphs etter ID eller Unicode med GlyphAccessor.get_glyph_by_id() og get_glyph_by_unicode()
  • Løs opp alle glyfer for en streng med GlyphAccessor.get_glyphs_for_text()
  • Inspiser glyfkonturstier som skrevne kommandoer: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Få tilgang til glyfens avgrensningsboks, avstandsbredde og sidebæringer fra Glyph egenskaper
  • Les kerning-par fra KernPair for nøyaktige tekstlayoutberegninger

Typiske bruksområder

  • Kontroller av glyfdekning for flerspråklig tekstgjengivelse
  • Konturuttrekking for SVG‑sti eller vektorgenerering
  • Validering av kerningtabell i font QA‑arbeidsflyter
  • Forskning på tekstforming og lavnivå layout‑eksperimentering

Skriftkonvertering

  • Konverter mellom TTF, OTF, CFF, WOFF, WOFF2, EOT og Type 1 med FontConverter.convert()
  • Tilpass Bezier‑kurvetyper med CurveAdapter.quad_to_cubic() og cubic_to_quads()
  • Konverter glyfbaner mellom kvadratiske og kubiske med convert_path_quad_to_cubic() og convert_path_cubic_to_quad()

Typiske bruksområder

  • Webfont‑pipelines som konverterer TTF‑masterfonter til WOFF2 for distribusjon
  • Type foundry‑verktøy som eksporterer til flere formatmål fra én kilde
  • Legacy EOT‑konvertering for bakoverkompatible webskriftstabler
  • Automatisert normalisering av skrifttypeformat i kontinuerlig integrasjon

Fontdelsett

  • Delsett av skrifttyper etter Unicode‑tekst med FontSubsetter.subset_by_text()
  • Delsett etter glyph-ID-liste med FontSubsetter.subset_by_gids()
  • Produser weboptimaliserte delsett med FontSubsetter.subset_for_web()
  • Bruk navngitte forhåndsinnstillingsprofiler med FontSubsetter.subset_by_presets() og available_presets()
  • Analyser delmengde-dekning med FontSubsetter.analyze_coverage() og analyze_web_coverage()

Typiske bruksområder

  • Redusere WOFF2-payloadstørrelse for websider med begrensede tegnsett
  • Produsere språkspesifikke fontundersett for i18n‑distribusjoner
  • Arbeidsflyter for fontlisensiering som distribuerer delmengder per side‑sett
  • Ytelsesoptimalisering for mobilwebapplikasjoner

Weboptimalisering og forhåndsvisning av variable fonter

  • Fjern legacy-tabeller og Mac-navnoppføringer med FontCleaner.clean_for_web()
  • Sjekk kompatibilitet for variabel skriftakse med CompatibilityChecker.compare_fonts() og compare_variable_instances()
  • Generer animerte APNG-akse-sveip med AnimationPreviewBuilder.build_axis_sweep()
  • Bygg flertrinns animasjonsbaner med AnimationPreviewBuilder.build_path()

Typiske bruksområder

  • Fontprøvesider og interaktive akseutforskere for typografier
  • CI-pipelines som verifiserer variabel skriftoppførsel før distribusjon
  • Web‑ytelsesrørledninger som fjerner ikke‑essensielle binære tabeller
  • Skriftforhåndsvisningsminiatyrer for skrifthåndteringsapplikasjoner

Last inn en fontfil

Åpne en TrueType- eller OpenType-skrift fra en filsti og les dens grunnleggende 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

Få tilgang til glyfer for en tekststreng

Løs opp alle glyfer for et Unicode‑kodepunkt og inspiser deres konturbaner.

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)

Generer en Variable Font Axis Sweep‑animasjon

Lag en animert APNG som sveiper en variabel fontakse fra start‑ til sluttverdi.

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

Rengjør en font for web‑distribusjon

Fjern legacy‑tabeller og Mac‑navnoppføringer for å redusere binærstørrelsen før webtjeneste.

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

Ofte stilte spørsmål

Hva er Aspose.Font FOSS for Python?

Det er et gratis, MIT-lisensiert pure-Python bibliotek for lasting, inspeksjon, konvertering og delmengde av fonter i TTF, OTF, CFF, Type 1, WOFF, WOFF2 og EOT-formater. Ingen native avhengigheter kreves.

Hvordan installerer jeg Aspose.Font FOSS for Python?

Kjør pip install "aspose-font>=1.0.0". Ingen systemavhengigheter er nødvendige. Biblioteket fungerer på Windows, macOS og Linux med Python 3.10 eller nyere.

Hvilke fontformater støttes?

FontLoader.open() leser TTF, OTF, CFF, Type 1, WOFF, WOFF2 og EOT. FontConverter.convert() skriver TTF, CFF, WOFF og WOFF2. EOT er skrivebeskyttet.

Er Font.to_bytes() tilgjengelig?

Nei. Font.to_bytes() er ikke implementert i grunnklassen. Bruk FontConverter.convert() for å lage en ny Font i ønsket format.

Kan jeg lage en delmengde av en font for weblevering?

Ja. FontSubsetter.subset_by_text(font, text) returnerer en ny Font som kun inneholder tegnene som kreves for den gitte teksten. FontSubsetter.subset(font, codepoints) og subset_by_gids(font, gids) gir finere kontroll.

  

Støtte og læringsressurser

 Norsk